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


86

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

しかし、すべて無駄です。それは決して表示されません。何が足りないのですか?


他のアプリケーションでキーボードが開いていますか?
Niranj Patel 2013

これを置き換えてみてくださいimm.showSoftInput(editText、InputMethodManager.SHOW_IMPLICIT); これをimm.toggleSoftInput(InputMethodManager.SHOW_FORCED、0);
アラビン2013

@CapDroidいいえ、残念ながら。別のアプリケーションで試しましたが、まだ運がありません
Andrey Chernukha 2013

@Aravinthはまだ機能しません
Andrey Chernukha 2013

エミュレータまたはデバイスを使用していますか。
Aravin 2013

回答:


211

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

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

Genymotionでハードウェアキーボードを無効にするには: ->に
移動し、の下の項目を開きます。ありますが、オン/オフを切り替えることができ設定が。それがあるとき、あなたの物理的なキーボードを使用して、それがあるときにオフ標準ソフトキーボードがポップアップするテキストフィールドがフォーカスを取得するたびに。SettingsLanguage & inputDefaultKeyboard & Input MethodsHardware

Genymotion設定のスクリーンショット: デフォルトアイテム

ここに画像の説明を入力してください


4
最後に!どうもありがとうございました。私はあなたの答えを二度賛成できたらいいのにと思います。Genymotionに関しては-私はそれをセットアップしようとして1日を過ごしましたが、それはうまくいきませんでした。私は彼らのサポートに手紙を書くことさえできませんでした
Andrey Chernukha 2013

喜んでお手伝いします:)Genymotionに関しては、常に改善されていますが、まだプレビュー/ベータ版です。しかし、使い始めてから問題は1つもありません。彼らがほとんどの問題を解決した後、私はそれを始めたばかりかもしれません-または私はただ幸運です:)。とは言うものの、Androidエミュレーターはより多くのバリエーションを提供するので、互換性をテストするためにそれらを使用します。
free3dom 2013

それは素晴らしいです、今私は仮想キーボードを手に入れました!しかし、私はandroid:inputType = "numberDecimal">のEditTextを持っていて、virtualkeyboardは数字を書きません(私がそれらの前に手紙を書いた場合にのみそれらを書きます)。スペルチェッカーは...オフすでにある
ミケーレ

考えられる解決策については、こちらご覧ください
free3dom 2013

@ free3dom〜 "キーボードと入力方法の下のデフォルト項目を開く"それは何ですか?そのアイテムが表示されません。
IgorGanapolsky 2014

73

バージョン2.1.1では、仮想デバイスの設定をクリックし、[入力に仮想キーボードを使用する]チェックボックスをオンにします。 ここに画像の説明を入力してください

ここに画像の説明を入力してください


2

AS1.1.0でハードウェアキーボードの選択を解除する場所は2つあります。これでは不十分です。

ここに画像の説明を入力してください

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

ここに画像の説明を入力してください


スクロールインジケーターは通常は表示されなくなり、スクロールを開始すると表示されるため、この解決策を見つけるのに時間を費やしました。ビューがスクロール可能である場合は、その可能性を視覚的に示すことをお勧めします。
gregM 2015年

AndroidStudioでは機能しません。「キーボード入力を有効にする」のチェックを外しましたが、エミュレーターにソフトウェアキーボードが表示されません。
evgenii 2015

「チェックを外す」と言ったのは1つだけです。もう1つは、示されているように「ハードウェアキーボードを持っている」です。おそらく、すでにクリアしているはずです。別の仮想デバイスを試してみませんか?ASエミュレーターは許容するのがかなり難しいことがわかりました。ロードが遅い、このような癖....頑張ってください。
DSlomer64 2015

2

Android Studio 2+エミュレーターの画面上のソフトキーボードを有効にする方法は、エミュレーターの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 23

ハードウェアとソフトキーボードを使用したい場合は...

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

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

[D] API24および25

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

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

[E] API 26

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



1

表示するには:

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

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


残念ながら、それは役に立ちませんでした
Andrey Chernukha 2013

InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(InputMethodManager.SHOW_FORCED、InputMethodManager.HIDE_IMPLICIT_ONLY); ...これを試してください
FarhaSameer786 2013

@ AndreyChernukha-エミュレータがソフトキーボードをサポートしていないか、エミュレータのハードウェアが正しく機能していないと思います.....
FarhaSameer786 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.