允许EditText中的特定字符并阻止所有其他字符Android
问题描述:
我想允许Edittext中的某些特定字符并阻止所有其他字符。我搜索了互联网,并没有找到解决方案。所有我发现是如何阻止特定的字符,但在我的情况下,我想允许特定的字符和阻止所有其他字符。 例如,我想在edittext中允许的字符是A-Z,0-9和逗号,点和下划线(_)就是它。如果有人能给我一个如何做到这一点的例子,或者指向我的正确环节,我将非常感激。 谢谢!允许EditText中的特定字符并阻止所有其他字符Android
答
的一种方法,只允许特定的字符是使用具有一个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
而其他人则将我的帖子标记为否定。你为我提供了最好的解决方案! 谢谢你! –
一个
TextChangedListener
这个问题已经在输入滤波器节的答案。[见本](http://stackoverflow.com/questions/3349121/how-do-i-use-inputfilter-to-limit-characters-in-an-edittext-in-android) –我希望你的应用程序只有英文版本,不必处理不同的本地化。限制对US-ASCII的输入似乎并不总是最重要的。 – Diti