[Android] EditText 문자입력 제한 (숫자, 영문, 한글) android

EditText 사용시 키 입력제한으로 하려면 InputFilter를 만들어서 사용하면 된다.

EditText의 Method중 setFilters 를 사용하여 적용할 수 있다.

기본적으로 InputFilter의 배열을 받기 때문에 여러 개의 필터를 만들어서 같이 적용하는 것도 가능하다.


 

// 영문만 허용

protected InputFilter filterAlpha = new InputFilter() {

        public CharSequence filter(CharSequence source, int start, int end,

                                Spanned dest, int dstart, int dend) {


                Pattern ps = Pattern.compile("^[a-zA-Z]+$");

                if (!ps.matcher(source).matches()) {

                        return ""

                } 

                return null;

        } 

}; 


// 영문만 허용 (숫자 포함)

protected InputFilter filterAlphaNum = new InputFilter() {

        public CharSequence filter(CharSequence source, int start, int end,

                                Spanned dest, int dstart, 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, nt dstart, int dend) {


                Pattern ps = Pattern.compile("^[ㄱ-가-힣]+$");

                if (!ps.matcher(source).matches()) {

                        return ""

                } 

                return null;

        } 

}; 



사용 예


getSite = (EditText)findViewById(R.id.et_getsite);

getSite.setFilters(new InputFilter[] {filterAlpha});


덧글

  • 바보햄 2013/07/31 10:58 # 삭제 답글

    잘보고 가요 ~
  • test1 2014/09/29 03:44 # 삭제 답글

    좋은 정보 감사합니다~
  • 둥두루 2016/01/14 21:03 # 삭제 답글

    좋은 정보 보고갑니다.
댓글 입력 영역