私はAndroidが初めてです。私はすでに検索に2時間を費やしました。 EditText
のソフトキーボードを試しても何も表示されません。単純に作成します。
EditText editText = (EditText)findViewById(R.id.editText);
私は試した:
editText.requestFocus();//i tried without this line too
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
そして:
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus)
{
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
}
});
私も試しました:
getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);
この行をAndroidManifest.xml
ファイルに入れてみました:
Android:windowSoftInputMode="stateVisible|adjustResize"
しかし、すべてが無駄に。決して表示されません。何が欠けていますか?
エミュレータがハードウェアキーボードを使用するように設定されていないことを確認する必要があります。これは、AVDで選択したエミュレータでEdit
を選択することで実行できます。次に、uncheckHardware keyboard present
設定を確認します。
Genymotion などの別のエミュレータを使用してみることもできます。完全なハードウェアアクセラレーション(マルチコアCPUおよびGPU)をサポートし、Androidエミュレーターイメージのいずれよりもはるかに高速に実行されます。 Genymotionを使用する場合、Android内でハードウェアキーボードを無効にする必要があります(詳細については以下を参照)。
Genymotionでハードウェアキーボードを無効にするには:Settings
-> Language & input
に移動し、Keyboard & Input Methods
の下のDefault
アイテムを開きます。オン/オフを切り替えることができるHardware
設定があります。 onの場合、物理キーボードを使用し、offの場合テキストフィールドがフォーカスを取得するたびに、標準のソフトキーボードがポップアップします。
Genymotion設定のスクリーンショット:
バージョン2.1.1では、仮想デバイスの設定をクリックし、「入力に仮想キーボードを使用」チェックボックスを選択します。
AS 1.1.0では、ハードウェアキーボードの選択を解除する場所が2つあります。これは十分ではありません:
これを行う必要があります(Tools | Android | AVD Manager
をクリックしてから、新しいAVDを作成するか、古いAVDを編集してからShow Advanced Settings
をクリックし、スクロールしてEnable keyboard input
をクリアします):
表示するには:
EditText editText = (EditText) findViewById(R.id.myEdit);
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
// only will trigger it if no physical keyboard is open
mgr.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
そして非表示にする:
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.hideSoftInputFromWindow(editText.getWindowToken(), 0);
これを試してみてください。
Android Studio 2+ Emulatorsの画面上のソフトキーボードを有効にする方法は、エミュレーターのAPIレベルによって異なります。 API 15以降のさまざまなメソッドをテストし、以下の手順を記録しました。
[A] API 15、17、19、および21
次の手順では、画面上のソフトキーボードを有効にしますが、ハードウェアコンピューターのキーボードを使用してテキストを入力し、AVDと対話する機能を無効にします。
[B] API 22
ハードウェアキーボードの設定をどうしても、ソフトキーボードが表示されます。ソフトキーボードと一緒にハードウェアキーボードサポートを有効にする場合は、
[C] API 2
ハードウェアとソフトキーボードを使用する場合は...
ハードウェアキーボードが必要ない場合は、AVDの詳細設定で[キーボード入力を有効にする]オプションをオフにします。仮想デバイスの設定を変更する必要はありません。
[D] API 24および25
AVDで[キーボード入力を有効にする]オプションを選択した場合、ハードキーボード入力とソフトキーボード入力の両方を使用できるようになります。 AVDでオプションのチェックを外した場合、ソフトキーボードが表示されます。
[E] API 26
[D] API 24および25とまったく同じです。ただし、言語と入力/物理キーボードにアクセスする前に、デバイス設定で追加の「システム」メニューレベルをナビゲートする必要があります。
エミュレータがソフトキーボードをサポートしていない可能性があります。
ハードウェアプロパティのキーボードサポートを追加し、エミュレータのtrueに設定します。
それが既に本当なら この答えをチェックしてください。