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

조회수 4463회

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

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]*$"라고 입력하시면 됩니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)