Intereting Posts
Вставить Python в Java на Android Как добавить фоновое изображение в действие? Как исправить 'cordova' не распознается в командной строке – windows 8? Build.xml version.tag для системных инструментов 14, синтаксис? На Android-устройстве требуется перезарядка и международный полисполк Автоматическое добавление нескольких пользовательских представлений в макет Какую добавку, маржу и размер следует использовать для пользовательского макета MenuItem? Андроид mutable bitmap Как использовать «goAsync» для broadcastReceiver? Программно установить текст редактирования текста в Android? Приложение, использующее профиль bluetooth SPP, не работает после обновления с Android 4.2 до Android 4.3 Недопустимое имя каталога ресурсов для значений с кодом страны Android, как сделать текст TextView полужирным при нажатии или фокусировке ActionBarSherlock (ABS): как настроить текст действия в режиме закрытия объекта? Можно ли принудительно установить EULA во время установки Android-приложения?

Показать программную клавиатуру без EditText

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

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

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

Solutions Collecting From Web of "Показать программную клавиатуру без EditText"

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

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

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" 

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

 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); 

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

 android:windowSoftInputMode="stateAlwaysVisible" 

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

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