我希望用戶只能在EditText中輸入字母和特殊字符。一種方法是在EditText的「android:digits」標籤中添加所有字母和所有特殊字符。但我認爲這不是一個好方法。Android:允許用戶在EditText中僅添加字母和特殊字符
任何更好的方法來實現它?
我希望用戶只能在EditText中輸入字母和特殊字符。一種方法是在EditText的「android:digits」標籤中添加所有字母和所有特殊字符。但我認爲這不是一個好方法。Android:允許用戶在EditText中僅添加字母和特殊字符
任何更好的方法來實現它?
我用了一個輸入過濾器來阻擋只有數字:
private static InputFilter filter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
String blockCharacterSet = "1234567890";
if (source != null && blockCharacterSet.contains(("" + source))) {
return "";
}
return null;
}
};
然後將過濾器:
edittext.setFilters(new InputFilter[] { filter });
查看EditText input type docs找到這些是否滿足您的要求。
如果不是,使用正則表達式檢查來自EditText
的輸入字符串是否符合您所需的格式或不是一個好主意。
設置android:digits="abcdefghijklmnopqrstuvwxyz?/>,<.:";'{}[]\|)(*&^%$#@!
〜+ = -_等「'中的EditText屬性你的XML中。 注意: - 請在鍵盤上添加所有可用的特殊字符以代替
您可以通過編程方式實現此操作addTextChangedListener –
好的。我會試一試。 –
你爲什麼認爲'android:digits'不是一個好方法? –