본문 바로가기
개발/안드로이드

전화번호 하이픈(-) 포맷팅 하기

by darksilber 2012. 4. 17.
반응형

 

안드로이드에서 기본적으로 전화번호를 입력하면 하이픈이 저절로 그어지도록 지원해준다.


그러나,


int FORMAT_JAPAN Japanese formatting
int FORMAT_NANP NANP formatting
int FORMAT_UNKNOWN The current locale is unknown, look for a country code or don't format


JAPAN 와 NANP (North American Numbering Plan) 밖에 지원해주지 않는다는 사실.


Japan규칙은 모르겠고... 북아메리카는 3-3-x 규칙이더라. 자세한건 위키백과에 나온다. 우리나라는 요즘 대부분 3-4-4


자 그건 그렇고,


설명을 보자면



PhoneNumberUtils.formatNumber() : 현재 지역의 설정에 맞게 서식화.

PhoneNumberUtils.compare() : 두 전화번호를 비교.


PhoneNumberUtils.isEmergencyNumber() : 긴급통화가 가능한지 여부.

PhoneNumberUtils.formatJapaneseNumber() : 일본어 특수 접두어 사용.

PhoneNumberFormattingTextWatcher() : EditText 에 전화번호 입력시 자동서식화



이런것들이 있는데 사용법은 다음과 같다.



1. 어떠한 전화번호 스트링을 주면 하이픈 규칙이 붙어서 리턴받는 방법.


String formattingNumber = PhoneNumberUtils.formatNumber("010123454567");


간단하다.





2. EditText 에 숫자를 입력 받는대로 바로 하이픈 규칙이 되도록 하는 방법.


EditText et = findViewById(R.id.xxx); 해서 객체를 얻어왔다 치면


et.setInputType(android.text.InputType.TYPE_CLASS_PHONE); // 먼저 EditText에 번호만 입력되도록 바꾼 뒤


et.addTextChangedListener(new PhoneNumberFormattingTextWatcher()); // 이렇게 리스너를 걸어주면


번호가 입력되자마자 하이픈이 저절로 붙는 마술을 볼 수 있을 것이다.




맘대로 수정&퍼가도 좋으나 출처만은 남겨주시길...


출처 : http://www.mfamstory.com

반응형

댓글