Как ограничить специальные символы из поля Android EditText? - PullRequest
27 голосов
/ 02 августа 2010

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

Ответы [ 3 ]

42 голосов
/ 02 августа 2010

Вы пытались добавить атрибут android:digits="abcde.....0123456789"?Хотя android:digits указывает на то, что это числовое поле, мне нужно настроить его на прием букв и специальных символов (проверено на SDK-7).т работает, тогда вам придется реализовать KeyListener см .: http://developer.android.com/reference/android/widget/TextView.html#setKeyListener(android.text.method.KeyListener)

6 голосов
/ 26 марта 2015

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

     }
1 голос
/ 31 июля 2017

Я решил эту проблему в своем ответе: Запрет специальных символов в EditText .Вы можете изменить регулярное выражение согласно вашему требованию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...