私の目標は、あるイベントでスクリーン上のソフトウェアキーボードを表示/非表示にし、そのキーボードからの入力を傍受することです。EditTextなしでソフトウェアキーボードを表示
私は、一部のViewクラスの子孫のためにソフトキーボードが表示できることを知りましたが、スクリーン上にテキスト編集ウィジェットを視覚的に表示する必要はありません。
これを達成する最も良い方法は何ですか?
私の目標は、あるイベントでスクリーン上のソフトウェアキーボードを表示/非表示にし、そのキーボードからの入力を傍受することです。EditTextなしでソフトウェアキーボードを表示
私は、一部のViewクラスの子孫のためにソフトキーボードが表示できることを知りましたが、スクリーン上にテキスト編集ウィジェットを視覚的に表示する必要はありません。
これを達成する最も良い方法は何ですか?
あなたは使用することによって示されなければ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);
この質問はほぼ一年前に頼まれた場合でも、それは受け入れられたがありませんでしたそして私は同じ問題に直面していたので、私は私の解決策を共有しました:
これはソフト入力を表示する方法です:
InputMethodManager im = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
im.showSoftInput(myView, InputMethodManager.SHOW_FORCED);
しかし、あなたはまた、タッチモードでフォーカス可能とフォーカス可能など、あなたのビューを設定する必要があり:実は
android:focusable = "true"
android:focusableInTouchMode = "true"
、次のことができalways
ショー:
myView.setFocusable(true);
myView.setFocusableInTouchMode(true);
またはビューのXMLで
マニフェストからのソフトキーボード入力。あなたは、ソフトキーボードを表示したい各アクティビティに次の行を追加します。ビューにはのEditTextがありません場合android:windowSoftInputMode="stateAlwaysVisible"
ソフトキーボードは関係なく表示されます。 例:
<activity android:name=".ChatActivity"
android:windowSoftInputMode="stateAlwaysVisible">
</activity>
この方法は機能しませんでした。 showSoftInputはfalseを返し、キーボードは表示されません。 – Nekuromento
これは動作するはずですが、次の行を試すことができます。 im.showSoftInput(this、InputMethodManager.SHOW_IMPLICIT); – Vikram