Notice
Recent Posts
Recent Comments
Link
투케이2K
134. (TWOK/WORK) [업무 이슈] 안드로이드 EditText 키보드 inputType phone 폰번호 입력 상태에서 클립보드 붙여 넣기 시 숫자 이외 문자열 추가 이슈 본문
투케이2K 업무정리
134. (TWOK/WORK) [업무 이슈] 안드로이드 EditText 키보드 inputType phone 폰번호 입력 상태에서 클립보드 붙여 넣기 시 숫자 이외 문자열 추가 이슈
투케이2K 2025. 2. 3. 19:06[제 목]
[업무 이슈] 안드로이드 EditText 키보드 inputType phone 폰번호 입력 상태에서 클립보드 붙여 넣기 시 숫자 이외 문자열 추가 이슈
[내 용]
------------------------------------------------------------------------------
[이슈 사항]
------------------------------------------------------------------------------
1. 안드로이드 EditText 키보드 inputType phone 폰번호 입력 상태에서 클립보드 붙여 넣기 시 숫자 이외 문자열 추가 이슈
2. 데이터 통신에서 파라미터 전송 시 휴대폰 번호는 하이픈 문자도 포함되면 안되며, Only Number 숫자 형태로 전송 필요
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[원인 파악 및 증상 재현]
------------------------------------------------------------------------------
1. 안드로이드 EditText 입력창 화면 진입 수행
2. 기존 동작 테스트) EditText 클릭으로 포커스 요청 후 올라온 가상 키패드 타입 Number 형태 확인 및 입력 데이터 Only 숫자 확인
3. 변경 동작 테스트) 다른 화면 및 앱에 작성 된 하이픈 특수 문자 포함 휴대폰 번호 (ex : 010-1234-5678) 클립 보드 복사 후 EditText 에 붙여넣기 수행 시 특수문자 그대로 추가 되는 것 확인
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[조치 내용]
------------------------------------------------------------------------------
1. EditText 실시간 텍스트 변경 감지 이벤트 등록 해 변경된 EditText 에 숫자 이외의 문자가 포함 된 경우 정규 식 사용해 제거 및 다시 EditText 에 setText 텍스트 지정 수행
2. 샘플 소스 코드 :
inputPhoneEditText!!.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
S_Log.d("PHONE_BEAFORE", inputPhoneEditText!!.text.toString())
}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
S_Log.w("PHONE_CHANGE", inputPhoneEditText!!.text.toString())
// [정규식 수행 숫자만 허용 : 한글, 영문, 특수 문자 등 모두 제거]
var phoneText = inputPhoneEditText!!.text.toString()
var regPhoneText = C_Util.getRexpNumberString(phoneText)
regPhoneText = regPhoneText.trim().replace(" ", "")
if (phoneText.length != regPhoneText.length){ // [제거 된 문자가 있는 경우]
Handler(Looper.getMainLooper()).postDelayed({
inputPhoneEditText!!.setText(regPhoneText.trim()) // [뷰 갱신 수행]
},1000)
}
}
override fun afterTextChanged(p0: Editable?) {
S_Log.e("PHONE_AFTER", inputPhoneEditText!!.text.toString())
}
})
------------------------------------------------------------------------------
반응형
'투케이2K 업무정리' 카테고리의 다른 글
Comments