菜单按钮打开键盘

时间:2013-01-07 09:50:46

标签: android android-service android-softkeyboard keylistener

我想知道长按硬件菜单按钮时键盘是如何弹出的。我已经读过关键监听器在服务中不可用。那么,菜单按钮究竟是如何触发键盘显示的呢?

修改

由于我的问题似乎有点不连贯,这就是我的意思。

当我在应用程序抽屉中并长按菜单按钮时,键盘会弹出。或者,如果我正在使用应用程序并再次长按菜单按钮,则键盘仍会弹出。

所以,我假设它是键盘服务,但是服务没有关键的监听器。

那怎么可能呢?

3 个答案:

答案 0 :(得分:0)

将此代码放在按钮侦听器

如果要显示屏幕键盘

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

如果你想隐藏它

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

答案 1 :(得分:0)

@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)

无法在Android中向服务添加keyListener。菜单按钮触发我的键盘,因为它是一个自定义mod,并且该功能嵌入在框架本身中。不是因为服务keylistener或其他理论。

如果你很好奇,我正在使用CM7.2.0-buzz