我想知道如何阻止用户以编程方式将数字输入到我的edittext中,以便它具有与此相似的效果
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ#$%......"
我查看了edittext.setInputType(InputType.something)
,但找不到阻止用户输入数字的输入类型。
有没有人知道如何通过输入类型或其他方法来做到这一点?
答案 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);
如果您想要自动更正,这可能是一个问题,但对我来说它工作正常