允许EditText中的特定字符并阻止所有其他字符Android

时间:2016-09-15 08:59:31

标签: android android-edittext

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

1 个答案:

答案 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
    }

 }
});