Подтвердить что ты не робот

Как ограничить специальные символы в поле Android EditText?

Как ограничить специальные символы в поле Android EditText?

4b9b3361

Ответ 1

Вы пытались добавить атрибут android:digits="abcde.....0123456789"? Хотя android:digits указывает, что это числовое поле, для меня действительно работает, чтобы он также принимал буквы, а также специальные символы (проверенные на SDK-7).

Если это не сработает, вам придется реализовать KeyListener см. http://developer.android.com/reference/android/widget/TextView.html#setKeyListener(android.text.method.KeyListener)

Ответ 2

Просто передайте объект 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 });

     }