如何限制Android EditText字段中的特殊字符?

sar*_*ndi 27 android android-edittext

如何限制Android EditText字段中的特殊字符?

alv*_*vin 42

您是否尝试过添加android:digits="abcde.....0123456789"属性?虽然android:digits指定它是一个数字字段,但它确实可以将它设置为接受字母,以及特殊字符(在SDK-7上测试).

如果这不起作用,那么你必须实现KeyListener 看看:http://developer.android.com/reference/android/widget/TextView.html#setKeyListener(android.text.method.KeyListener)

  • 在ICS设备上也使用android:imeOptions ="actionNext"时,这个方法给我带来了问题."下一步"按钮没有出现! (2认同)

Aru*_*run 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 });

     }
Run Code Online (Sandbox Code Playgroud)