Мы работаем над нашим первым приложением для Android, и до сих пор оно было очень приятным.Это почти завершено, но перед выпуском у нас есть некоторые соображения, в основном о программной клавиатуре Android.
У нас есть пара полей EditText , которые используются для ввода чисел.Мы хотели бы зафиксировать событие, когда пользователь нажимает ввод, и сделать некоторые вычисления и сохранить этот обратный вызов.
Проблема в том, что мы не получаем фиксированное событие, поскольку разные телефоны имеют разные клавиатуры.В некоторых есть кнопка «Готово», а в наших телефонах HTC есть кнопки «Ввод».Мы попытались использовать imeOptions как «готово», но это не повлияло на телефоны HTC.
Мы также знаем, что клавиатура может быть отклонена нажатием кнопки назад .Поэтому мой вопрос заключается в том, есть ли надежный способ узнать, когда пользователь прекратил ввод или когда клавиатура скрыта, точно так же, как обратный вызов textFieldShouldReturn в iphone sdk (который всегда срабатывает, когда клавиатура выключается, независимо откакая клавиша заставила его выйти из строя) ..
Другими словами, как разработчик Android обрабатывает программную клавиатуру? Я проверяю KeyEvent.KEYCODE_ENTER на editText onClick () и выполняйте мои задачи там. Он работает на моем HTC Android, но не на телефоне Nexus моих друзей, в котором вместо кнопки ввода есть кнопка «Готово».Там onClick даже не называется.Как разработчик справляется с этим?
РЕДАКТИРОВАТЬ: После потери половины моих волос, и с помощью некоторых хороших друзей здесь
У меня естьперепробовал все ваши предложения, но в конце с помощью onEditorActionListener вместе с методом onKeyListener сделали свое дело.В обратном вызове onEdit для onEditorActionListener я проверил наличие ключевого кода ACTION_DONE , который вызывался на клавиатурах с кнопкой done. На клавиатурах, на которых есть вход, вызывается onKey.В методе onKey я также проверил для KEYCODE_BACK , так что событие аппаратного обратного нажатия также может быть обработано.Я еще не обнаружил устройство Android с готовым и войти на клавиатуре (серьезно), тем не менее, я даже обрабатывал этот случай с флагом.Спасибо @Femi за предложение onEditorActionListener, и спасибо всем друзьям за вашу помощь.Но ответ на мой первоначальный вопрос
Q: Есть ли надежный и простой способ узнать, как Android софт-клавиатура уходит в отставку (обратный вызов, который работает на каждом телефоне)
Ответ: Нет, все методы, предложенные здесь, и все методы, предложенные на других сайтах, не просты.И я думаю, что обработка события для клавиши возврата с клавиатуры - самая простая вещь для любой операционной системы. Гугл, ты там?