Остановите таймер, когда получите строку - PullRequest
0 голосов
/ 26 июня 2019

Я хочу сделать приложение Timer, считающее, как долго кто-то печатает.

Я хочу выполнить следующие шаги-

  1. Запуск таймера при нажатии кнопки EditBox и запуске набора текста

  2. При нажатии кнопки текст отображается в TextView

  3. Таймер останавливается, как только я получаю значение из TextView после нажатия кнопки на шаге 2

1 Ответ

0 голосов
/ 26 июня 2019

Вы должны использовать TextWatcher для этой цели. TextWatcher’s afterTextChanged() метод вызывается, чтобы уведомить вас, что где-то в пределах EditText текст был изменен.

Если текст изменен, а длина равна 1, что означает, что набор текста начат, длина равна 0, что означает, что набор текста остановлен.

Пример кода Android:

messageEditText.addTextChangedListener(new TextWatcher() {

public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

public void onTextChanged(CharSequence s, int start, int before, int count) {

}

public void afterTextChanged(Editable s) {

      if (!TextUtils.isEmpty(s.toString()) && s.toString().trim().length() == 1) {

          //Log.i(TAG, “typing started event…”);

          typingStarted = true;

           //send typing started status

      } else if (s.toString().trim().length() == 0 && typingStarted) {

          //Log.i(TAG, “typing stopped event…”);

          typingStarted = false;

           //send typing stopped status
     }
}

});

Вы можете запускать и останавливать свой таймер на основе значений выше.

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