본문 바로가기
Mobile/Android

[Android] 휴대 전화번호 형식 하이픈(-) 자동 치환 코드

by C_Meaning 2021. 12. 9.
728x90

전화번호를 입력받을때는 단순히 아래 코드와 같이 자동 치환 메소드를 쓰면 되지만

addTextChangedListener(new PhoneNumberFormattingTextWatcher("KR"));

 

휴대전화번호 작업을 하던 도중, 모든 번호 입력방식을 휴대전화번호와 같이 입력받아야하는 일이 생겼다.

다음 코드와 같이 위쳐 코드를 확장하여 수정하면 모든 번호를 휴대전화 형식에 맞추어 입력할 수 있다.

phoneText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                if (s.length() == 4 && !phoneText.getText().toString().substring(3).equals("-")) {
                    s.insert(3,"-");
                }
                if (s.length() == 8 && !s.toString().substring(7,8).equals("-")) {
                    s.insert(7,"-");
                }

                if (s.length() == 13 && s.toString().substring(7,8).equals("-")) {
                    s.delete(7, 8);
                    if(!s.toString().substring(7,8).equals("-")){
                        s.insert(8,"-");
                    }
                }
                if (s.length() == 12 && s.toString().substring(8,9).equals("-")) {
                    s.delete(8, 9);
                    if(!s.toString().substring(8,9).equals("-")){
                        s.insert(7,"-");
                    }
                }

            }
        });
728x90

댓글