我一直在搜索这件事,但无法理解。所以我想在这里问一下我面临的问题究竟是什么,这样它也可以帮助其他人(谁可能面临同样的问题)
我的活动
中有以下代码public class MainActivity extends ActionBarActivity implements KeyEvent.Callback{
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
System.out.println("Key down called");
if ( keyCode == KeyEvent.KEYCODE_MENU ) {
System.out.println("Menu clicked");
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
System.out.println("On key up");
if ( keyCode == KeyEvent.KEYCODE_MENU ) {
System.out.println("up Menu clicked");
return true;
}
return super.onKeyUp(keyCode, event);
}
}
工作位置(具有物理按钮的设备)
如果我在Android设备中运行底部带有物理密钥的相同代码,则会调用Menu
按钮和Back
按钮调用这些方法。
问题(具有虚拟键的设备)
但是如果我在底部有Virtual keys的设备中运行代码(而不是物理键),则这些方法会被 NOT 调用。
我能够处理后退(感谢onBackPressed()
),但无法覆盖按下虚拟键的菜单按钮。
这件事的任何解决方法?如何覆盖具有虚拟键的Android设备中的菜单按钮。
感谢。
答案 0 :(得分:0)
较新版本中没有菜单按钮,尤其是底部有虚拟按钮。它是最近的应用程序按钮,具有此预定义功能,可显示最近的应用程序,但无法覆盖。