我想知道长按硬件菜单按钮时键盘是如何弹出的。我已经读过关键监听器在服务中不可用。那么,菜单按钮究竟是如何触发键盘显示的呢?
修改
由于我的问题似乎有点不连贯,这就是我的意思。
当我在应用程序抽屉中并长按菜单按钮时,键盘会弹出。或者,如果我正在使用应用程序并再次长按菜单按钮,则键盘仍会弹出。
所以,我假设它是键盘服务,但是服务没有关键的监听器。
那怎么可能呢?
答案 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