Показать программную клавиатуру без EditText - PullRequest
13 голосов
/ 16 февраля 2012

Моя цель - показать / скрыть экранную программную клавиатуру для какого-либо события и перехватить ввод с этой клавиатуры.

Я обнаружил, что программная клавиатура может отображаться для некоторых потомков класса View, но яне нужно никакого визуального представления виджета редактирования текста на экране, просто возможность программно показывать / скрывать программную клавиатуру с перехватом ввода.

Каков наилучший способ добиться этого?

Ответы [ 3 ]

15 голосов
/ 17 января 2013

Даже если бы этот вопрос был задан почти год назад, у него не было принятого и полностью полезного ответа, и, поскольку я сам столкнулся с той же проблемой, я решил поделиться своим решением:

Как указал Викрам, это способ показать мягкий ввод:

InputMethodManager im = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
im.showSoftInput(myView, InputMethodManager.SHOW_FORCED);

НО Вы также должны установить фокусировку и фокусировку в сенсорном режиме:

myView.setFocusable(true);
myView.setFocusableInTouchMode(true);

или, на ваш взгляд, XML:

android:focusable = "true"
android:focusableInTouchMode = "true"
3 голосов
/ 16 февраля 2012

Вы можете принудительно отобразить экранную клавиатуру, используя:

InputMethodManager im = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
im.showSoftInput(myView, InputMethodManager.SHOW_FORCED);

и скрыть:

((InputMethodManager) YourActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(findViewById(R.id.YOUR_VIEW).getWindowToken(), 0);
2 голосов
/ 15 февраля 2016

На самом деле, вы можете always показать программную клавиатуру из манифеста. добавьте эту строку в каждое действие, которое вы хотите отобразить программную клавиатуру:

android:windowSoftInputMode="stateAlwaysVisible"

Программная клавиатура будет отображаться независимо от того, есть ли на экране текст редактирования. Пример:

<activity android:name=".ChatActivity"
    android:windowSoftInputMode="stateAlwaysVisible">

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