Проверка текста редактирования в Android - PullRequest
1 голос
/ 16 мая 2011

Я новичок в Android и пытаюсь написать приложение для проекта.

Мне нужно проверить, ввел ли пользователь 7 цифр, за которыми следует один алфавит в тексте редактирования. Пример: 0000000x

Как мне это сделать? ТИА! :)

Ответы [ 3 ]

6 голосов
/ 16 мая 2011

Вероятно, лучшим подходом будет использование TextWatcher , переданного в addTextChangedListener () метода EditText. Вот пример использования:

editText.addTextChangedListener(new TextWatcher() {
  @Override
  public void afterTextChanged(Editable e) {
    String textFromEditView = e.toString();
    validateText(textFromEditView);
  }

  @Override
  public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    //nothing needed here...
  }

  @Override
  public void onTextChanged(CharSequence s, int start, int before, int count) {
    //nothing needed here...
  }
});

Я оставлю реализацию метода validateText(String) в качестве упражнения для читателя, но я думаю, что это должно быть достаточно просто. Я бы либо использовал:

  1. Простое регулярное выражение.
  2. Или, поскольку этот случай достаточно прост, проверьте, что длина строки равна 8, и просмотрите каждый символ. Существует простой служебный класс для проверки характеристик персонажей. Character.isDigit (символ) и Character.isLetter (символ)
0 голосов
/ 16 мая 2011

В Android есть класс Pattern, в котором вы можете задать регулярное выражение в соответствии с вашими требованиями. Попробуйте следующий код, который, я думаю, может работать

Pattern p = Pattern.compile ("{7}");Matcher m = p.matcher (String.valueOf (edittext));

Это будет верно только в том случае, если в текстовом поле есть 7 символов, а затем вы можете использовать некоторые методы, такие как "Character.isDigit (char)и Character.isLetter (char) "

0 голосов
/ 16 мая 2011

OnKeyListener прослушивает каждое нажатие клавиши в представлении.Вы можете использовать это, чтобы проверить, ввел ли пользователь то, что он должен.

Например: если введенное количество символов равно 7, то

проверьте, соответствует ли оно формату выражения reqd.*

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