Intereting Posts
Кросс-браузер get keyCode Установить цвет фона элемента меню при наведении на Android Перевести легко xml в Android Как поместить один вид над другим в относительном макете программно в андроид? Дизайн кода для многократного использования элементов пользовательского интерфейса drag & drop в android Кнопка и доступная слева Запретить пользователю вставлять больше символов после ограничения размера в поле EditText Как использовать DefaultHttpClient в Android? Как интегрировать библиотеку кодов Matlab с Android? Можно ли использовать VectorDrawable в кнопках и TextViews с помощью Android: DrawableRight? Android – глобальный приемник макета не работает Crashlytics не деобфусцирует код Android WebView, как обрабатывать перенаправления в приложении, а не открывать браузер Выбор / выделение нескольких элементов в списке с помощью пользовательского адаптера – Android Fragment isAdded () возвращает false на уже добавленном фрагменте

Показать программную клавиатуру без 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>