2016-09-15 4 views
2

Edittextで特定の文字を許可し、他のすべての文字をブロックします。私はインターネットを検索して解決策を見つけられませんでした。私が知ったのは、特定の文字をブロックする方法でしたが、私の場合は特定の文字を許可し、他のすべての文字をブロックする必要がありました。 たとえば、edittextで許可したい文字は、A〜Z、0〜9、カンマ、ドット、アンダースコア(_)です。誰かが私にそれをする方法の例を教えてくれたり、正しいリンクに私を指差してくれたら、私はとても感謝しています。 ありがとう!EditTextで特定の文字を許可し、他のすべての文字をブロックします。Android

+0

TextChangedListenerを使用することです/ 3349121/how-do-i-use-input-limit-in-an-edittext-in-android) –

+0

あなたのアプリケーションが英語のみであり、異なるローカリゼーションに対処する必要がないことを願っています。 US-ASCIIへの入力を制限することは、必ずしも最高のものではないようです。 – Diti

答えて

2

のみ、特定の文字を許可する1つの方法は、この質問が既に入力フィルタ部での答えを持っている。[これを参照してください](http://stackoverflow.com/questions Pattern

final Pattern pAlpha = Pattern.compile("[0-9a-zA-Z,._]+"); 
yourEditText.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) {} 

    @Override 
    public void afterTextChanged(Editable s) { 
    if (pAlpha.matcher(yourEditText.getText()).matches()) { 
     // you allowed it 
    } else { 
     // you don't allow it 
    } 

} 
}); 
+2

他の人が自分の投稿を否定的なものとしてマークしていました。あなたは私に最高のソリューションを提供しました! ありがとうございました! –