Ключевое событие удаления (возврата) не работает - как это исправить? - PullRequest
0 голосов
/ 09 марта 2019

Я написал свою пользовательскую клавиатуру t9 для устройства Android-N.

Если неоднократно нажимать одну и ту же клавишу, сотрите предыдущий символ и введите следующий символ. (Пример A -> B)

Например, когда мы последовательно нажимаем кнопку «2» на жесткой клавише, аппаратная клавиатура IME удаляет предыдущий символ следующим процессом.

(Текущий исходный код)


 mParent.getCurrentInputConnection().deleteSurroundingText(1,0);

Ожидаемый результат: Ввод: [2] -> [2] -> [2] Выход (дисплей): A -> B -> C

Результат теста приложения с использованием Hard Keyboard IME. Выход (дисплей): A -> AB -> ABC

Мы изменили deleteSurroundingText() на следующие 2 утверждения.

SendKeyEvent(new KeyEvent(KeyEvent.ACTIN_DOWN,KeyEvent.KEYCODE_DEL)), 
SendKeyEvent(new KeyEvent(KeyEvent.ACTIN_UP,KeyEvent.KEYCODE_DEL)) 

Но после этого изменения все равно отображаемый символ НЕ хорош.

Например: - Мы дважды нажали клавишу 2, но дисплей по-прежнему A.

Любое предложение здесь будет полезно для обработки ключа удаления в Android.

...