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
):
上一篇: Android softkeyboard never shows up in emulator
下一篇: gravity not working