Задержка TextInputLayout ошибка, когда пользователь печатает - PullRequest
0 голосов
/ 25 апреля 2020

У меня простой экран с одним TextInputLayout, и у меня есть TextWatcher, который проверяет, совпадает ли TextInputLayout с моим регулярным выражением, пока пользователь печатает. (поэтому нет кнопки для проверки, она проверяет, когда пользователь печатает)

Моя проблема в том, что я не хочу отображать ошибку сразу, потому что пользователь все еще печатает. Я хочу установить задержку, например 1000 мс, и показать ошибку, если она все еще не верна.

Проверка нажатием кнопки не работает для моего случая, поскольку кнопки нет. Проверка после EditText потери фокуса не работает для моего случая, потому что он никогда не теряет фокуса.

Вот код.

    edt_input.addTextChangedListener(object : TextWatcher {

        override fun afterTextChanged(s: Editable?) {
            if (!s.isNullOrBlank() && s.matches(ARRAY_FORMAT_REGEX)) {
                til_input.error = null
                ..some code here
            } else {
                if (til_input.error == null) til_input.error = getString(R.string.invalid_input)
            }

        }

        override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
        override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {

        }

    })

Я пытался использовать задержку, но не смог выяснить как настроить логи c.

Timer("SettingUp", false).schedule(500) { 
   doSomething()
}
...