Позволяют пользователям переключаться между языками ввода внутри j2me java-клавиатуры мидлета qwerty E71 и т. д.
У нас есть мидлет, который должен позволить пользователю на лету переключать языки ввода (это приложение типа словаря) между несколькими языками (скажем, с английского на арабский и т. Д.). В старые добрые времена все было очаровательно с помощью цифровой клавиатуры, мы сами обрабатывали ввод, совмещая 2 щелчка по 5, чтобы передать правильный символ в нашу программу. Затем появился E71, он имеет qwerty-клавиатуру, и на нашем холсте KeyPressed мы получаем символ, который пользователь нажал, скажем "a" на клавиатуре, теперь задача сопоставления этого с правильным языком (скажем, пользователь сейчас ищет сторона словаря с арабского на английский) включает в себя задачу сопоставления буквы "а" (на макете qwerty, я думаю) с арабской буквой, которая получилась бы, если бы макет был арабским. В этих устройствах S60 есть специальное сочетание клавиш (зависит от устройства), которое позволяет пользователю открывать переключатель языка ввода (функция + пробел в случае E71), но, похоже, они не работают, когда работает наш мидлет. Другое предложенное решение состояло в том, чтобы как-то использовать редактируемое текстовое поле для ввода, в этом случае jvm предлагает стандартную поддержку для изменения языка ввода, однако мы визуализируем холст (приятный на вид), и замена его на текстовое поле является последним курорт для нас.
Итак, у нас есть вопрос: какое еще решение может кто-то придумать для решения этой проблемы? или кто-нибудь нашел способ обойти это раздражение? С наилучшими пожеланиями, --tzurs
1 ответ
Я думаю, что вы можете сделать сопоставление, используя специфические системные свойства Nokia для настроек клавиатуры. С помощью com.nokia.keyboard.type
, com.nokia.key.scancode
а также com.nokia.key.modifier
Вы должны быть в состоянии создать достаточно универсальное решение для устройств Nokia.
Более подробная информация об этих системных свойствах доступна в документации Nokia.