Android (Milestone/Droid): View.onkeyListener не работает правильно?
Вопрос
Я использую простой EditText
и зарегистрировать View.OnKeyListener
. Анкет Некоторые изменения графического интерфейса должны произойти (исчезание/вне взглядов), когда применяются определенные условия для текста EditView. В эмуляторе это работает, как и ожидалось. На Motorola Droid/Milestone слушатель не работает, только
- После нажатия DEL слушатель называется в первый раз, а потом всегда
- При активации ввода числа слушатель работает правильно
Примечание. Я деактивировал предложения с помощью type_text_flag_no_suggestions и использовал действие IME IME_Action_go, чтобы иметь обходной путь для этого (в противном случае пользователь не мог «запустить» запрос).
Решение
Нашел лучший и работающий способ реализации: Использовать EditText.addTextChangedListener
с TextWatcher
класс (и реализовать TextWatcher.onTextChanged(CharSequence s, int start, int before, int count)
), отлично работает также на рубеже/дроиде.
Другие советы
TextWatcher не может полностью заменить OnKeyListener. Например, если ваш текстовый поток пуст, как бы вы обнаружили, что этот пользователь нажал Del -клавишу? Или что, если у вас вообще нет текстового поля, и вы хотите обнаружить ключевые события?