Android:允许用户在EditText中仅添加字母和特殊字符

时间:2015-07-28 09:08:37

标签: android xml android-edittext

我希望用户只在EditText中输入字母和特殊字符。一种方法是在EditText的“android:digits”标签中添加所有字母和所有特殊字符。但我认为这不是一个好方法。

有没有更好的方法来实现它?

3 个答案:

答案 0 :(得分:0)

查看EditText input type docs以查找是否满足您的要求。

如果没有,使用正则表达式检查来自EditText的输入字符串是否符合您的要求格式是个好主意。

答案 1 :(得分:0)

我使用InputFilter来阻止数字:

private static InputFilter filter = new InputFilter() {
    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        String blockCharacterSet = "1234567890";
        if (source != null && blockCharacterSet.contains(("" + source))) {
            return "";
        }
        return null;
    }
};

然后应用过滤器:

edittext.setFilters(new InputFilter[] { filter });

答案 2 :(得分:0)

在xml中的edittext中设置android:digits="abcdefghijklmnopqrstuvwxyz?/>,<.:";'{}[]\|)(*&^%$#@!〜+ = -_ etc“`属性。 注意: - 请在键盘上添加所有可用的特殊字符代替等。