我试图检测Android手机上的物理菜单按钮何时被按下.我虽然下面的代码可以工作,但事实并非如此.我哪里出错了?
返回的错误是'onKeyDown参数的非法修饰符; 只允许决赛'
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
// Do Stuff
} else {
return super.onKeyDown(keyCode, event);
}
}
Run Code Online (Sandbox Code Playgroud)
SK9*_*SK9 82
我想寻找一个向上的关键事件,而不是向下的事件,有onKeyUp
.
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
// ........
return true;
}
return super.onKeyUp(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)
我们回来true
是因为我们正在处理这个事件; false
如果您希望系统也处理该事件,请返回.
您也可以在您的Activity
实例中执行所有这些操作,因为Activity
它是已知的间接子类KeyEvent
.
mbo*_*ess 11
基于以上所有内容,这似乎是正确的实现,它将仅使用菜单键"up"事件并将其他键事件传递给超类.
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
// ...
return true;
} else {
return super.onKeyUp(keyCode, event);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
public boolean onKeyDown(int keyCode, KeyEvent event) {
//Checking for the "menu" key
if (keyCode == KeyEvent.KEYCODE_MENU) {
if (mDrawerLayout.isDrawerOpen(mDrawerList)) {
mDrawerLayout.closeDrawers();
} else {
mDrawerLayout.openDrawer(Gravity.RIGHT);
}
return true;
} else {
return super.onKeyDown(keyCode, event);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
39888 次 |
最近记录: |