如何检测正在按下哪个组合键?
例如,我想识别同时按下后退和菜单按钮或任何组合键。
我想根据按下的键打开我的应用程序。
正如 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
我做了一个简单的研究,发现了这个解决方案,它可能会奏效。您可以检测以下代码按下的菜单键。
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;
}
}
希望这可以帮助你。谢谢。