EditText에서 특정문자만 입력받게끔 할 수는 없나요?


EditText를 띄우는것까지는했는데 입력받을때 한글만 입력되게 하고싶어요. 어떻게하면 좋을까요?

  • 2016년 02월 13일에 작성됨

조회수 298


1 답변


좋아요
0
싫어요
채택취소하기

InputFilter를 사용하셔서 정규식으로 한글만 입력되게 바꾸시면됩니다.

// 한글 만 입력 되도록
public InputFilter filterAlphaNum = new InputFilter() {
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        Pattern ps = Pattern.compile("^[ㄱ-ㅣ가-힣]*$"); 
        if (!ps.matcher(source).matches()) { 
            return ""; 
        } 
        return null; 
    } 
}; 

// 아래와 같이 EditText에 적용 한다.
editText.setFilters(new InputFilter[]{filterAlphaNum}); 

//아래 소스에서 정규식만 바꿔주면 된다.
Pattern ps = Pattern.compile("^[a-zA-Z0-9]*$"); 

한글만 입력 되도록 : "[ㄱ-ㅣ가-힣]*$" 영어만 입력 되도록 : "[a-zA-Z]*$" 숫자만 입력 되도록 : "[0-9]*$"

영어와 숫자만 입력되도록 할경우에는 :"[a-zA-Z0-9]*$"라고 입력하시면 됩니다.

  • 2016년 02월 13일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close