Android软键盘永远不会显示在模拟器中

我是Android新手。 我已经花了两个小时进行搜索。 无论我尝试使用softkeyboard,我的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来完成。 然后取消选中 Hardware keyboard present设置。

您也可以尝试使用不同的仿真器,例如Genymotion。 它支持全硬件加速(多核CPU和GPU),运行速度比任何android模拟器图像快得多。 如果您使用Genymotion,则需要禁用Android内的硬件键盘(详情见下文)。

在Genymotion中禁用硬件键盘:
进入Settings - > Language & input并打开Keyboard & Input Methods下的Default项目。 有一个Hardware设置可以打开/关闭。 当它处于打开状态时,使用物理键盘, 关闭时,只要文本字段获得焦点,标准软键盘就会弹出。

Genymotion设置的屏幕截图: 默认项目

在这里输入图像描述


在版本2.1.1中 - 点击您的虚拟设备设置 - 然后选择“使用虚拟键盘进行输入”复选框。 在这里输入图像描述

在这里输入图像描述


在AS 1.1.0中有两个地方可以取消选择硬件键盘。 这一个是不够的:

在这里输入图像描述

必须执行此操作(单击Tools | Android | AVD Manager ;然后创建新的或编辑旧的AVD,然后单击Show Advanced Settings ;向下滚动并清除Enable keyboard input ):

在这里输入图像描述

链接地址: http://www.djcxy.com/p/93323.html

上一篇: Android softkeyboard never shows up in emulator

下一篇: gravity not working