마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

edittext 원하는 문자만 입력하기

0 추천
public InputFilter filterAlphaNum = new InputFilter() {
    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        Pattern pattern = Pattern.compile("^[a-fA-F0-9]+$");
        if(!pattern.matcher(source).matches()){
            return "";
        }
        return null;
    }
};

 

이 소스를 사용해서 맥주소를 입력하려고 합니다(A~F, 0~9까지만 입력)
다른 문자들은 입력이 안되는게 잘 되긴하나 다른 문자 터치시 원래 입력한 값들도 없어지고 다른 문자들을 몇번 터치하다보면 입력해도 되는 문자들도 입력이 안됩니다
위의 문제를 해결할 수 있는 방법이 없을까요??

빈길 (1,270 포인트) 님이 2018년 1월 2일 질문

2개의 답변

0 추천
 
채택된 답변

EditText 의 InputType 을 "textNoSuggestions" 으로 해보세요.

android:inputType="textNoSuggestions"
눈빛 (4,120 포인트) 님이 2018년 1월 3일 답변
빈길님이 2018년 1월 4일 채택됨
원하는 대로 나오네요 답변 감사합니다
0 추천
인풋필터....좀 불편하지요...

필터에 걸렸을때 return "" 했으니까 다 지워지는거겠죠..

return source.replace("^[a-fA-F0-9]",""); 이런식으로 하면 되지 않을까 싶네요.
익명사용자 님이 2018년 1월 4일 답변
...