0

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

编辑

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

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

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

那怎么可能呢?

4

3 回答 3

0

将此代码放在您的按钮侦听器上

如果要显示屏幕键盘

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

如果你想隐藏它

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
于 2013-01-07T10:03:40.320 回答
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;
}
于 2013-01-07T10:06:26.967 回答
0

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

如果你好奇,我用的是 CM7.2.0-buzz

于 2013-01-12T03:40:16.677 回答