2016-09-15 36 views
2

我想允許Edittext中的某些特定字符並阻止所有其他字符。我搜索了互聯網,並沒有找到解決方案。所有我發現是如何阻止特定的字符,但在我的情況下,我想允許特定的字符和阻止所有其他字符。 例如,我想在edittext中允許的字符是A-Z,0-9和逗號,點和下劃線(_)就是它。如果有人能給我一個如何做到這一點的例子,或者指向我的正確環節,我將非常感激。 謝謝!允許EditText中的特定字符並阻止所有其他字符Android

+0

一個TextChangedListener這個問題已經在輸入濾波器節的答案。[見本](http://stackoverflow.com/questions/3349121/how-do-i-use-inputfilter-to-limit-characters-in-an-edittext-in-android) –

+0

我希望你的應用程序只有英文版本,不必處理不同的本地化。限制對US-ASCII的輸入似乎並不總是最重要的。 – Diti

回答

2

的一種方法,只允許特定的字符是使用具有一個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

而其他人則將我的帖子標記爲否定。你爲我提供了最好的解決方案! 謝謝你! –

相關問題