我是Android新手。我已经花了两个小时来搜索。无论我尝试使用软键盘,我的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"
但都是徒劳的。它永远不会显示。我错过了什么?
答案 0 :(得分:207)
您需要确保您的模拟器未设置为使用硬件键盘。这可以通过在AVD中选定的仿真器上选择Edit
来完成。然后取消选中 Hardware keyboard present
设置。
您也可以尝试使用其他模拟器,例如Genymotion。它支持全硬件加速(多核CPU以及GPU),并且运行速度比任何Android模拟器图像快得多。如果您使用Genymotion,则需要在Android中禁用硬件键盘(详见下文)。
在Genymotion中禁用硬件键盘:
转到Settings
- > Language & input
并打开Default
下的Keyboard & Input Methods
项。您可以打开/关闭Hardware
设置。当开启时,您使用物理键盘,当关闭时,只要文本字段获得焦点,就会弹出标准软键盘。
Genymotion设置的屏幕截图:
答案 1 :(得分:73)
在2.1.1版中 - 单击您的虚拟设备设置 - 然后选择"使用虚拟键盘输入"复选框。
答案 2 :(得分:2)
在AS 1.1.0中,有两个地方可以取消选择硬件键盘。这还不够:
必须这样做(点击Tools | Android | AVD Manager
;然后创建新的或编辑旧的AVD,然后点击Show Advanced Settings
;向下滚动并清除Enable keyboard input
):
答案 3 :(得分: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);
试试这个......
答案 4 :(得分:1)
答案 5 :(得分:1)
为Android Studio 2+仿真器启用屏幕软键盘的方法取决于仿真器的API级别。我已经测试了从API 15开始的各种方法,并记录了以下步骤。
[A] API 15,17,19和21。
以下步骤将启用屏幕上的软键盘,但将禁用输入文本并使用硬件计算机键盘与AVD交互的功能。
[B] API 22
无论您使用硬件键盘设置如何操作,都会显示软键盘。如果您希望在软键盘旁边启用硬件键盘支持,那么
[C] API 23
如果您想使用硬件和软键盘,那么......
如果您不需要硬件键盘,请在AVD高级设置中取消选中"启用键盘输入"选项。您不需要更改虚拟设备上的任何设置。
[D] API 24和25
如果在AVD中选择了启用键盘输入选项,那么您现在可以使用硬键盘输入和软键盘输入。如果取消选中AVD中的选项,则无论如何都会显示软键盘。
[E] API 26
与[D] API 24和25完全相同,除了您需要浏览其他"系统"进入语言和输入/物理键盘之前,设备设置中的菜单级别