안드로이드의 입력폼인 EditText를 사용시 특수문자나 어느 특정 단어만 입력받게 허락을 해주려면
filter 관련 속성을 이용하면 된다.
아래처럼 함수를 하나 만들고 사용하는 EditText에 대해서 .setFilters 라는 메서드를 사용하면 된다.
/** 영문~숫자만 특수문자 제한 **/
public InputFilter filterAlphaNum = new InputFilter() {
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, intdstart, int 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 source, int start, int end, Spanned dest, intdstart, int dend) {
Pattern ps = Pattern.compile("^[ㄱ-ㅎ가-흐]+$");
if (!ps.matcher(source).matches()) {
return "";
}
return null;
}
};
한글의 경우 [ㄱ-ㅣ가-힣] 으로 해야 정상입력될 것 같네요^^
그리고 +$가 아닌 *$로 해야 지울 때 문제발생하지 않겠네요...
그리고 +$가 아닌 *$로 해야 지울 때 문제발생하지 않겠네요...
좋은정보 | 2012/05/23 13:31
좋은 정보 감사합니다~^^
그런데 저같은 초보 분들은 이런 좋은 팁을 보고도 사용하지 못하시는 분들을 위해서..
editText.setFilters(new InputFilter[]{filterAlphaNum});
이렇게 사용하시면 됩니다~ㅎㅎ
그런데 저같은 초보 분들은 이런 좋은 팁을 보고도 사용하지 못하시는 분들을 위해서..
editText.setFilters(new InputFilter[]{filterAlphaNum});
이렇게 사용하시면 됩니다~ㅎㅎ
출처 : http://olpost.com/r/2193292
댓글 없음:
댓글 쓰기