Android软菜单键监听器存在吗?

时间:2015-05-19 16:20:24

标签: android navbar

我有一个问题,如果我禁用硬件菜单按钮(即后面,主页,菜单)。我在屏幕上留下了一个软件菜单栏。但是我以前的KEYCODE_MENU按键侦听器不再适用于此虚拟菜单按钮。有人可以帮助我使用这个虚拟菜单按钮的正确的键监听器吗?

以下在硬件菜单按钮上工作之前,但在我禁用硬件按钮并在android中启用了软菜单按钮时停止工作:



      @Override
      public boolean onKeyDown(int keycode, KeyEvent e) {
          switch(keycode) {
              case KeyEvent.KEYCODE_MENU:
                  doSomething();
                  return true;
          }
          return super.onKeyDown(keycode, e);
      }

2 个答案:

答案 0 :(得分:0)

New versions of Android do not have Menu button at all,虽然有些制造商 ahem 三星不断添加硬件菜单按钮。

要在导航栏中输入Menu菜单按钮,您需要在AndroidManifest.xml中将targetSdkVersion设置为10,这将使您的应用程序看起来很古老。

你可以真实地期望只有三个硬件按钮(例如将发送键码的按钮) - 后退,音量增大和音量调低,并且将音量按钮用于改变音量以外的任何其他方式都是不好的。

答案 1 :(得分:0)

你可以做一次黑客攻击,当应用程序运行时按下最近的按钮,它会将应用程序置于onPause。因此,您可以在应用程序的onPause()中重新排序任务并将您的应用程序置于所有任务之上。这样,只有在按下最近的应用程序按钮时才会出现故障。

将此代码放在onPause()

((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE)).moveTaskToFront(getTaskId(), 0);

需要以下许可才能重新排序任务。

<uses-permission android:name="android.permission.REORDER_TASKS" />