Как получить событие для софт-клавиатуры KEYCODE_DEL? - PullRequest
2 голосов
/ 06 марта 2011

Я спрашивал об этом ранее в списке рассылки Android dev, но не получил ответа.

В моем приложении время от времени я включаю программную клавиатуру, и похоже, что события для клавиши DEL недоставлен.Рассматриваемый метод -

http://pastebin.com/zZaZWJ4t

, а весь класс Java -

http://squeakvm -tablet.googlecode.com / hg / project/src/org/squeak/android/SqueakView.java

Любая буквенно-цифровая клавиша или нажатие клавиши Enter (Return) на программной клавиатуре передаются в приложение, кроме KEYCODE_DEL.Я попытался заменить KEYCODE_DEL в предложении case чем-то другим (например, кодом для аппаратной кнопки PAGE_UP), и предложение нажмет эту кнопку при нажатии этой кнопки.

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

Что можно сделать, чтобы получать события для KEYCODE_DEL?Является ли получение подкласса клавиатуры единственным способом?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 31 января 2014

Переопределение onCreateInputConnection () не возвращает TYPE_NULL в качестве типа ввода.Вы должны использовать TYPE_NULL, чтобы быть уверенным, что ключевые события будут сгенерированы.На самом деле они генерируются для одних ключей, а не для других, в некоторых версиях Android, но не в других, но вы ничего не можете считать , если только вы не используете TYPE_NULL.

Если вы do настроите свой код для использования TYPE_NULL, то просмотрите это описание обходного пути для двух ошибок в определенных версиях Google Keyboard по умолчанию LatinIME, влияющих на обработку TYPE_NULL:

Android - не может захватить возврат / удалить нажатие в программном обеспечении.клавиатура

0 голосов
/ 15 марта 2011

У меня была похожая проблема, и я смог ее решить, добавив TextWatcher к EditText, используя addTextChangedListener .

...