1

我想知道如何阻止用户以编程方式将数字输入到我的编辑文本中,以便它具有与这样做类似的效果

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

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

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

4

3 回答 3

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

于 2013-02-07T18:06:02.940 回答
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);
于 2013-02-07T18:09:07.180 回答
0

pavki_a 的回答完美无缺,但是退格键和建议一词只有一些错误。我通过添加来修复这些:

edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

如果您想自动更正,这可能是个问题,但对我来说效果很好

于 2013-02-08T06:50:34.577 回答