Представление застряло на `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);
}
Другие вопросы по тегам