Android Kotlin : 전화번호 및 주민등록번호 하이픈(-) 처리
2022. 9. 8. 13:52ㆍ[Android APP] feat. Kotlin/Kotlin 공부
개요
회원가입을 하거나 사용자 정보를 변경하거나 할 경우 하이픈(-)이 들어가야하는 경우가 생긴다.
이럴 때는 우선 전화번호와 나머지를 구분해야 한다.
전화번호같은 경우에는 안드로이드 자체에서 제공해주는 기능이 있다.
1. 전화번호
전화번호 같은 경우는 매우 간단하다. 안드로이드에서 제공해주는 기능을 사용하면 알아서 하이픈처리를 해준다.
1) xml
android:inputType="phone"
- 텍스트 입력 방식을 phone으로 설정해준다.
2) Activity
binding.phoneText.addTextChangedListener(PhoneNumberFormattingTextWatcher())
- TextChangedListener와 함께 PhoneNumberFormattingTextWacher()기능을 넣어주면 내가 입력할 때 전화번호 양식에 맞춰 하이픈(-)이 들어가게 된다.
2. 일반 숫자
핸드폰 번호같은 경우 제공해주는 기능이 있지만, 주민등록번호나 사업자 등록번호같은 일반 숫자의 경우 직접 코딩으로 넣어줘야한다.
1) 주민등록번호 하이픈 처리 Activity
binding.resisNumber.addTextChangedListener(object : TextWatcher {
var prevL = 0
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {
prevL = binding.입력받는텍스트.text.toString().length
}
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {}
override fun afterTextChanged(s: Editable) {
val length = s.length
if (prevL < length && length == 6){//3번째 6번째 글자 사이에 하이픈 삽입
val data: String = binding.userResistNum.text.toString()
binding.userResistNum.setText("$data-")
binding.userResistNum.setSelection(length + 1)
}
}
})
addTextChangedListener는 사용자가 텍스트를 입력할 때,
텍스트가 바뀌기 전, 입력 중, 바뀐 후의 작업을 이벤트 처리해줄 수 있다.
따라서 위와같이 텍스트 길이를 구하여 하이픈을 넣어줄 수 있다.
prevL < length && length == 6
이 조건식에 따라서 하이픈의 위치를 조정해줄 수 있다.
위는 주민등록번호를 예시로 들었고, 3번째나 6번째에 하이픈을 넣어주고 싶다면
prevL < length && (length == 3 || length == 6)
이렇게 바꿔주면 된다.
2) xml
xml에서 문자를 최대 몇글자까지 받겠다고 지정해주면 더 좋다.
android:maxLength="13"
반응형
'[Android APP] feat. Kotlin > Kotlin 공부' 카테고리의 다른 글
Android Koltin : 비밀번호, 이메일 등 정규식 (0) | 2022.09.12 |
---|---|
Android Kotlin : 사용자 저장소 권한(Permission) 체크 (0) | 2022.09.12 |
Android Kotlin : Retrofit2 동적 Url주소 만들기 (0) | 2022.09.08 |
Android Kotlin : SHA-512 암호화 함수 (0) | 2022.09.08 |
Android Kotlin : URI에서 파일명 및 확장자 추출하기 (0) | 2022.09.08 |