我想知道长按硬件菜单按钮时键盘是如何弹出的。我读过关键侦听器在服务中不可用。那么,菜单按钮究竟是如何触发键盘出现的呢?
编辑
由于我的问题似乎有点不连贯,这就是我的意思。
当我在应用程序抽屉中并长按菜单按钮时,键盘会弹出。或者,如果我正在使用应用程序并再次长按菜单按钮,键盘仍然会弹出。
所以,我假设它是键盘服务,但服务没有键监听器。
那怎么可能呢?
我想知道长按硬件菜单按钮时键盘是如何弹出的。我读过关键侦听器在服务中不可用。那么,菜单按钮究竟是如何触发键盘出现的呢?
编辑
由于我的问题似乎有点不连贯,这就是我的意思。
当我在应用程序抽屉中并长按菜单按钮时,键盘会弹出。或者,如果我正在使用应用程序并再次长按菜单按钮,键盘仍然会弹出。
所以,我假设它是键盘服务,但服务没有键监听器。
那怎么可能呢?
将此代码放在您的按钮侦听器上
如果要显示屏幕键盘
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
如果你想隐藏它
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
@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;
}
没有办法将 keyListener 添加到 Android 中的服务。菜单按钮触发我的键盘,因为它是一个自定义模块,并且该功能嵌入在框架本身中。不是因为服务 keylistener 或其他理论。
如果你好奇,我用的是 CM7.2.0-buzz