2015-07-28 72 views
-3

我希望用戶只能在EditText中輸入字母和特殊字符。一種方法是在EditText的「android:digits」標籤中添加所有字母和所有特殊字符。但我認爲這不是一個好方法。Android:允許用戶在EditText中僅添加字母和特殊字符

任何更好的方法來實現它?

+0

您可以通過編程方式實現此操作addTextChangedListener –

+0

好的。我會試一試。 –

+1

你爲什麼認爲'android:digits'不是一個好方法? –

回答

0

我用了一個輸入過濾器來阻擋只有數字:

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 }); 
0

查看EditText input type docs找到這些是否滿足您的要求。

如果不是,使用正則表達式檢查來自EditText的輸入字符串是否符合您所需的格式或不是一個好主意。

0

設置android:digits="abcdefghijklmnopqrstuvwxyz?/>,<.:";'{}[]\|)(*&^%$#@!〜+ = -_等「'中的EditText屬性你的XML中。 注意: - 請在鍵盤上添加所有可用的特殊字符以代替

相關問題