【问题标题】:Menu button opening keyboard菜单按钮打开键盘
【发布时间】:2013-01-07 09:50:45
【问题描述】:

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

编辑

由于我的问题似乎有点语无伦次,这就是我的意思。

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

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

那怎么可能呢?

【问题讨论】:

  • 我认为您必须声明您对布局的关注。我假设有一个编辑文本,onfocus on create
  • @Androyds 你不理解我的问题。这与应用程序开发无关。在使用您的设备时,当您长按硬件菜单按钮时(无论您的前台是哪个应用程序),都会弹出键盘。这是怎么发生的?

标签: android android-service android-softkeyboard keylistener


【解决方案1】:

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

如果你想显示屏幕键盘

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

如果你想隐藏它

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

【讨论】:

    【解决方案2】:
    @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;
    }
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2015-09-13
        • 2020-06-19
        • 2010-10-31
        • 2011-12-26
        • 1970-01-01
        • 2019-11-19
        • 2020-06-05
        • 1970-01-01
        • 2015-07-09
        相关资源
        最近更新 更多