Android KeyEvent обработка - KeyCode или GetUnicodeChar? - PullRequest
0 голосов
/ 02 декабря 2010

Я пишу приложение для Android, которое в основном управляется аппаратным вводом с клавиатуры.Я нахожусь в процессе добавления поддержки мягкой клавиатуры, но я еще не совсем там.Но я отвлекся ...

Первоначально я проверял целочисленное значение keyCode, передаваемое моей функции OnKey, по перечислениям в классе KeyEvent.Достаточно просто ...

Но мне нужно знать, нажал ли пользователь комбинацию клавиш, которая генерирует символ>.Поэтому я проверил, была ли нажата клавиша ALT и передан код клавиши X ... но оказалось, что разные клавиши на разных телефонах генерируют символ>.

Теперь вместо этого я проверяю значение метода getUnicodeChar KeyEvent по известным значениям для символов Unicode.

Моя проблема решена - но есть ли приемлемый способ проверки символов?Большинству людей просто не нужны символы ALT или большинство людей используют программные клавиатуры, которые являются стандартными для всех устройств?Нет встроенной таблицы с перечислениями символов Unicode (во всяком случае, я знаю об этом), поэтому код тоже немного уродливее.Просто любопытно!

1 Ответ

0 голосов
/ 03 декабря 2010

Я считаю, что вы правы в том, что единственный способ определить, какая клавиша / альтернативная клавиша была нажата, - это посмотреть на символ Юникода.

Часто люди интересуются только первичными клавишами, поэтомуКод клавиши достаточен.

Вы не можете зависеть от того, какая конкретная IME (программная клавиатура) используется.Также обратите внимание, что текст, введенный через IME, доступен текстовым виджетам через InputConnection , поэтому он часто не использует KeyEvents, как аппаратные клавиатуры.

...