【发布时间】:2011-03-24 01:45:26
【问题描述】:
如何限制 Android EditText 字段中的特殊字符?
【问题讨论】:
如何限制 Android EditText 字段中的特殊字符?
【问题讨论】:
您是否尝试过添加android:digits="abcde.....0123456789" 属性?
尽管android:digits 指定它是一个数字字段,但我可以将其设置为也接受字母和特殊字符(在 SDK-7 上测试)。
如果这不起作用,那么您将不得不实施KeyListener
见:http://developer.android.com/reference/android/widget/TextView.html#setKeyListener(android.text.method.KeyListener)
【讨论】:
只需将 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 });
}
【讨论】:
我已经在我的回答中解决了这个问题:Prevent special symbols in EditText。您可以根据需要更改正则表达式。
【讨论】:
只需将下面的 xml 行放在 edittext 块内。
android:digits="abc"
这将只允许输入 a、b 和 c 字符。
【讨论】:
【讨论】: