如何限制将edittext中的用户输入限制为除数字之外的所有内容

时间:2013-02-07 17:55:39

标签: android android-edittext

我想知道如何阻止用户以编程方式将数字输入到我的edittext中,以便它具有与此相似的效果

android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ#$%......" 

我查看了edittext.setInputType(InputType.something),但找不到阻止用户输入数字的输入类型。

有没有人知道如何通过输入类型或其他方法来做到这一点?

3 个答案:

答案 0 :(得分:3)

InputFilter filter = new InputFilter() {
    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        String output = "";
        for (int i = start; i < end; i++) {
            if (!Character.isDigit(source.charAt(i))) { 
                    output += source.charAt(i); 
            }
        } 
        return output;
    } 
}; 
edit.setFilters(new InputFilter[]{filter});

假设编辑是您的EditText

答案 1 :(得分:0)

根据http://developer.android.com/reference/android/widget/TextView.html#attr_android:inputType,你可以使用

number - A numeric only field. Corresponds to TYPE_CLASS_NUMBER | TYPE_NUMBER_VARIATION_NORMAL.

你试过了吗?

edit.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL);

答案 2 :(得分:0)

pavki_a的答案完美无缺,但是有一些错误与退格和单词建议。我通过添加:

修复了这些问题
edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

如果您想要自动更正,这可能是一个问题,但对我来说它工作正常