Представление застряло на `commitText` метод InputConnection
Я отправляю текст, когда пользователь нажимает клавишу, используя код клавиши в InputConnection
но этот метод повесит представление и выпустит через несколько миллисекунд
if (getCurrentInputConnection() != null) {
getCurrentInputConnection().commitText(String.valueOf((char) charCode), 1);
}
Я делаю что-то не так или другое решение?
2 ответа
Решение
Не использовать commitText()
на каждое нажатие клавиши.
использование
getCurrentInputConnection().setComposingText(mComposingText, 1);
для всех нажатий клавиш и фиксации текста на space
Нажмите.
Для фиксации текста используйте
getCurrentInputConnection().finishComposingText();
Была решена моя проблема
Почему бы просто не создать экземпляр из getCurrentInputConnection()
?
String txt = String.valueOf((char) charCode);
InputConnection ic = getCurrentInputConnection();
if (ic != null) {
ic.commitText(txt , 1);
}