如何限制 Android EditText 字段中的特殊字符?
问问题
23889 次
5 回答
44
您是否尝试过添加android:digits="abcde.....0123456789"
属性?虽然android:digits
指定它是一个数字字段,但我可以将它设置为也接受字母和特殊字符(在 SDK-7 上测试)。
如果这不起作用,那么你将不得不实施KeyListener
见: http: //developer.android.com/reference/android/widget/TextView.html#setKeyListener(android.text.method.KeyListener)
于 2010-08-02T07:08:46.753 回答
6
只需将 EditText 对象传递给此方法。还要在变量 blockCharacterSet 中添加要被阻止的值。
private void disableSpecialChar(EditText editText) {
final String blockCharacterSet = "<>";
InputFilter filter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
if (source != null && blockCharacterSet.contains(("" + source))) {
return "";
}
return null;
}
};
editText.setFilters(new InputFilter[] { filter });
}
于 2015-03-26T06:36:46.773 回答
2
我已经在我的回答中解决了这个问题:Prevent special symbols in EditText。您可以根据需要更改正则表达式。
于 2017-07-31T11:35:26.447 回答
1
只需将下面的 xml 行放在 edittext 块内。
android:digits="abc"
这将只允许输入 a、b 和 c 字符。
于 2020-02-12T11:38:25.023 回答
0
于 2020-09-11T09:33:03.287 回答