2012년 8월 29일 수요일

안드로이드 EditText 특수문자 입력제한.



안드로이드의 입력폼인 EditText를 사용시 특수문자나 어느 특정 단어만 입력받게 허락을 해주려면
filter 관련 속성을 이용하면 된다.

아래처럼 함수를 하나 만들고 사용하는 EditText에 대해서 .setFilters 라는 메서드를 사용하면 된다.

/** 영문~숫자만 특수문자 제한 **/
public InputFilter filterAlphaNum = new InputFilter() {
public CharSequence filter(CharSequence sourceint startint endSpanned destintdstartint dend) {
Pattern ps = Pattern.compile("^[a-zA-Z0-9]+$");
if (!ps.matcher(source).matches()) {
return "";
}
return null;
}
};

/** 한글만 받기 **/
public InputFilter filterKor = new InputFilter() {
public CharSequence filter(CharSequence sourceint startint endSpanned destintdstartint dend) {
Pattern ps = Pattern.compile("^[ㄱ-ㅎ가-흐]+$");
if (!ps.matcher(source).matches()) {
return "";
}
return null;
}
};

한글의 경우 [ㄱ-ㅣ가-힣] 으로 해야 정상입력될 것 같네요^^
그리고 +$가 아닌 *$로 해야 지울 때 문제발생하지 않겠네요...

좋은정보  | 2012/05/23 13:31
좋은 정보 감사합니다~^^
그런데 저같은 초보 분들은 이런 좋은 팁을 보고도 사용하지 못하시는 분들을 위해서..
editText.setFilters(new InputFilter[]{filterAlphaNum}); 
이렇게 사용하시면 됩니다~ㅎㅎ






출처 : http://olpost.com/r/2193292

댓글 없음:

댓글 쓰기