2

我想实现当我点击手机上的“返回”按钮时,菜单会显示的功能。然后我写下面的代码:

public boolean onKeyDown(int keyCode, KeyEvent event) {

    if ((keyCode == KeyEvent.KEYCODE_BACK) &&(event.getRepeatCount() == 0)) {
            if(!getSlidingMenu().isMenuShowing()){
                toggle();
                //getSlidingMenu().showMenu();
            }

但事实上,如果“getSlidingMenu().isMenuShowing()==true”菜单会被关闭。而如果(!getSlidingMenu().isMenuShowing()),菜单只会出现很短的时间然后自动关闭。我想要的是菜单刚刚显示。

4

1 回答 1

0

onBackPressed 在 Android 设备中的“后退”按钮被按下时被调用。

因此,您需要覆盖前面提到的 onBackPressed。您的逻辑部分正确,但必须在 onBackPressed 内

以下代码片段应该可以工作(如果我正确理解您的问题):

public void onBackPressed() 
{   
    if (!getSlidingMenu().isMenuShowing()) {
        super.toggle();
    } else {
        super.onBackPressed(); // invoke super's method or other logic?
    }

}

这是来自 Android onBackPressed() 的文档 - 在 API 级别 5 中添加

Called when the activity has detected the user's press of the back key. The 
default implementation simply finishes the current activity, but you can override 
this to do whatever you want.
于 2013-06-03T04:54:47.037 回答