我想在Edittext中允许一些特定字符并阻止所有其他字符。我搜索过互联网并没有找到解决方案。我发现的只是如何阻止特定字符,但在我的情况下,我想允许特定字符并阻止所有其他字符。 例如,我想在edittext中允许的字符是A-Z,0-9和逗号,点和下划线(_)就是它。如果有人能给我一个如何做到这一点的例子,或者指出我正确的链接,我将非常感激。 谢谢!
答案 0 :(得分:2)
仅允许某些字符的一种方法是使用TextChangedListener
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
}
}
});