0

如何检测正在按下哪个组合键?

例如,我想识别同时按下后退菜单按钮或任何组合键。

我想根据按下的键打开我的应用程序。

4

2 回答 2

0

正如 Daniel Lew 所说(按下后退按钮时提示用户保存更改):

你不是在正确的轨道上;你应该做的是覆盖 onKeyDown() 并监听后退键,然后覆盖默认行为:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

如果您只支持 Android 2.0 及更高版本,他们添加了一个 onBackPressed() 您可以改用:

@Override
public void onBackPressed() {
    // do something on back.
    return;
}

这个答案基本上是从这篇博客文章中撕下来的:http ://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

于 2012-12-29T06:24:29.773 回答
0

我做了一个简单的研究,发现了这个解决方案,它可能会奏效。您可以检测以下代码按下的菜单键。

public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_MENU && event.getAction() == KeyEvent.ACTION_DOWN) {
            //Start a new thread here and run a while loop for listening to "back pressed" and trigger the event you want if the back button is pressed 
        } else {
            //stop the started thread above
            return false;
        }
    }

希望这可以帮助你。谢谢。

于 2012-12-29T07:02:45.613 回答