我有一个带有textfilterenabled的列表视图。在某些设备上,当您在菜单按钮上单击很长时,键盘会显示,但在某些设备上,标准显示键盘无法显示。
有人知道如何长按菜单按钮来显示键盘。我已经有一个代码,但它不起作用。键盘没有出现。
我的代码:
@Override
public boolean onKeyLongPress(int keycode, KeyEvent event){
if (keycode == KeyEvent.KEYCODE_MENU){
InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.showSoftInput(lv, InputMethodManager.SHOW_IMPLICIT);
}
return true;
}
提前致谢!
答案 0 :(得分:0)
您需要将键盘对准特定的editText
这样:
EditText etHello= (EditText) findViewById(R.id.yourEditText);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(etHello, InputMethodManager.SHOW_IMPLICIT);
答案 1 :(得分:0)
您使用showSoftInput()
- 平面调用SHOW_IMPLICIT
- 方法。它的文档说:
showSoftInput(View, int)
的标记表示这是一个 显示输入窗口的隐式请求,而不是a的结果 用户直接请求。窗口可能不会显示在此中 情况下。强>
由于您希望在用户按住菜单按钮时显示键盘,因此它不再隐含。尝试传递0
for flat-parameter。
也可以切换键盘,这似乎也适用于其他人。为此,请参阅此问题:android - show soft keyboard on demand
问题在于您的onKeyLongPress()
- 方法。要使用菜单按钮,需要一些额外的工作。请参阅我对这个旧问题的回答:How can I create a long touch event on the physical menu button?
最后但同样重要的是,您应该知道菜单按钮已被弃用,并且在新设备上不存在。出于兼容性原因,您将获得它的模拟版本,但ActionBar(及其搜索字段)应该优先于传统支持。所以你可能想要检查替代方案。