web-dev-qa-db-ja.com

Androidソフトキーボードがエミュレータに表示されない

私は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"

しかし、すべてが無駄に。決して表示されません。何が欠けていますか?

81

エミュレータがハードウェアキーボードを使用するように設定されていないことを確認する必要があります。これは、AVDで選択したエミュレータでEditを選択することで実行できます。次に、uncheckHardware keyboard present設定を確認します。

Genymotion などの別のエミュレータを使用してみることもできます。完全なハードウェアアクセラレーション(マルチコアCPUおよびGPU)をサポートし、Androidエミュレーターイメージのいずれよりもはるかに高速に実行されます。 Genymotionを使用する場合、Android内でハードウェアキーボードを無効にする必要があります(詳細については以下を参照)。

Genymotionでハードウェアキーボードを無効にするには:
Settings-> Language & inputに移動し、Keyboard & Input Methodsの下のDefaultアイテムを開きます。オン/オフを切り替えることができるHardware設定があります。 onの場合、物理キーボードを使用し、offの場合テキストフィールドがフォーカスを取得するたびに、標準のソフトキーボードがポップアップします。

Genymotion設定のスクリーンショット: Default Item

enter image description here

208
free3dom

バージョン2.1.1では、仮想デバイスの設定をクリックし、「入力に仮想キーボードを使用」チェックボックスを選択します。 enter image description here

enter image description here

73
Sharif

AS 1.1.0では、ハードウェアキーボードの選択を解除する場所が2つあります。これは十分ではありません:

enter image description here

これを行う必要があります(Tools | Android | AVD Managerをクリックしてから、新しいAVDを作成するか、古いAVDを編集してからShow Advanced Settingsをクリックし、スクロールしてEnable keyboard inputをクリアします):

enter image description here

2
DSlomer64

表示するには:

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

これを試してみてください。

1
FarhaSameer786

Android St​​udio 2+ Emulatorsの画面上のソフトキーボードを有効にする方法は、エミュレーターのAPIレベルによって異なります。 API 15以降のさまざまなメソッドをテストし、以下の手順を記録しました。

[A] API 15、17、19、および21

次の手順では、画面上のソフトキーボードを有効にしますが、ハードウェアコンピューターのキーボードを使用してテキストを入力し、AVDと対話する機能を無効にします。

  1. Android Virtual Device Manager(AVD)で、操作したいデバイスの編集アクションをクリックします
  2. [詳細設定を表示]をクリックして、ページの一番下までスクロールして[キーボード]セクションを表示します
  3. 「キーボード入力を有効にする」オプションのチェックを外します

[B] API 22

ハードウェアキーボードの設定をどうしても、ソフトキーボードが表示されます。ソフトキーボードと一緒にハードウェアキーボードサポートを有効にする場合は、

  1. AVDで、操作したいデバイスの編集アクションをクリックします
  2. [詳細設定を表示]をクリックして、ページの一番下までスクロールして[キーボード]セクションを表示します
  3. [キーボード入力を有効にする]オプションをオンにします

[C] API 2

ハードウェアとソフトキーボードを使用する場合は...

  1. [B]ステップ1から3を実行します
  2. 仮想デバイスで、設定を起動し、言語と入力/現在のキーボードを選択します
  3. ハードウェアを有効にする-入力方法を表示する

ハードウェアキーボードが必要ない場合は、AVDの詳細設定で[キーボード入力を有効にする]オプションをオフにします。仮想デバイスの設定を変更する必要はありません。

[D] API 24および25

  1. 上記の[B]ステップ1〜3に従い、hardqareキーボードを有効にするかどうかに応じて、[キーボード入力を有効にする]オプションをオンまたはオフにします。
  2. 仮想デバイスで、設定を起動し、言語と入力/物理キーボードを選択します
  3. 「仮想キーボードを表示」を有効にする

AVDで[キーボード入力を有効にする]オプションを選択した場合、ハードキーボード入力とソフトキーボード入力の両方を使用できるようになります。 AVDでオプションのチェックを外した場合、ソフトキーボードが表示されます。

[E] API 26

[D] API 24および25とまったく同じです。ただし、言語と入力/物理キーボードにアクセスする前に、デバイス設定で追加の「システム」メニューレベルをナビゲートする必要があります。

1
Will P

エミュレータがソフトキーボードをサポートしていない可能性があります。

ハードウェアプロパティのキーボードサポートを追加し、エミュレータのtrueに設定します。

それが既に本当なら この答えをチェックしてください。

1
Niranj Patel