单击长菜单上的Android显示键盘

时间:2012-08-05 12:10:29

标签: java android android-softkeyboard

我有一个带有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;
}

提前致谢!

2 个答案:

答案 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(及其搜索字段)应该优先于传统支持。所以你可能想要检查替代方案。