Android-клавиатура не работает - PullRequest
12 голосов
/ 01 сентября 2011

У меня странная проблема с неправильной работой программной клавиатуры.

Мое приложение не имеет ни одного представления EditText или каким-либо образом использует клавиатуру, но каким-то образом после установки моего приложения на несколько устройств, работы с ним и последующего возврата к использованию устройства перестала работать программная клавиатура, и это сводит меня с ума ...

Что видит пользователь, так это то, что когда он / она нажимает кнопку символа на программной клавиатуре, в EditText ничего не отображается для каждого приложения. Как я уже сказал, странная проблема затрагивает всю систему, и пользователь ничего не может написать.

Мое приложение содержит всевозможные функции, все работают с использованием стандартного API, поэтому я не понимаю, как я могу вызвать это или хотя бы вызвать его.

Когда клавиатура не работает и пользователь нажимает на кнопки клавиатуры, которые вы видите в журнале:

WARN/IInputConnectionWrapper(1628): sendKeyEvent on inactive InputConnection
WARN/IInputConnectionWrapper(1628): getCursorCapsMode on inactive InputConnection
WARN/IInputConnectionWrapper(1628): endBatchEdit on inactive InputConnection

Как InputConnection может стать неактивным и есть ли способ его активировать?

Мне было интересно, если бы у кого-то была такая проблема, и какова была причина этого?

Ответы [ 4 ]

5 голосов
/ 07 июня 2012

Похоже, ваше входное соединение не было правильно закрыто. У меня была похожая проблема, и я исправил ее следующим образом:

EditText editTextLogin = (EditText) findViewById(R.id.editTextLogin);
editTextLogin.requestFocus();
InputMethodManager inputManager = (InputMethodManager)context.getSystemService(INPUT_METHOD_SERVICE);
inputManager.restartInput(editTextLogin);
3 голосов
/ 17 ноября 2013

У меня была такая же проблема с моим nexus 7 и samsung s3. Я построил приложение с Android 4.4. Обычно клавиатура не появлялась в первый раз, или, если я скрываю, клавиатура больше никогда не появлялась. Источник проблемы был android:textIsSelectable="true". Если я удалил все мои editText, то эта ошибка исчезла.

1 голос
/ 13 октября 2015

У меня была похожая проблема в некоторых устройствах.После 2 дней изменения моего кода я обнаружил, что источником проблемы является строка android:selectAllOnFocus="true" в моем EditText

0 голосов
/ 23 сентября 2011

1) Вы пытались переопределить onPause и убить любые подписи вашего приложения с помощью:

System.runFinalizersOnExit(true);
System.exit(1);

Мне любопытно, если это не поможет, можете ли вы доказать, что зависание вызывает ваше приложение?

2) Вы реализуете какой-либо тип InputConnection самостоятельно?

Даже если это не то, что ваше приложение по какой-то причине может повесить одну из них, эта цитата из здесь может также иметь отношение к вашей проблеме (фокус):

* Только входное соединение активного клиента будет принимать операции. МВФ сообщает каждому клиентскому процессу, активен ли он, и структуру обеспечивает, что в неактивных процессах обращается к текущему InputConnection будет игнорироваться. Это гарантирует, что текущий IME может доставлять только события и текстовые правки в пользовательский интерфейс, который пользователь видит как быть в фокусе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...