2016-09-15 46 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

而其他人则将我的帖子标记为否定。你为我提供了最好的解决方案! 谢谢你! –

相关问题