如何检测正在按下哪个组合键?
例如,我想识别同时按下后退和菜单按钮或任何组合键。
我想根据按下哪个键来打开我的应用程序。
答案 0 :(得分:0)
正如Daniel Lew所说(Prompt user to save changes when Back button is pressed):
你不是在正确的轨道上;您应该做的是重写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
答案 1 :(得分: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;
}
}
希望这可能会对你有所帮助。 Thnks。