0

我注意到在我的活动中实现 onPrepareOptionsMenu() 时 - 第一次按下效果很好 - 来自 onPrepareOptionsMenu() 的回调开始。但是当它仍然可见时(打开一些对话框)并且我希望第二次按下关闭它(触发回调以关闭对话框) - 菜单按钮上的第二次按下不会触发 onPrepareOptionsMenu()。不知道为什么

这就是我实现它的方式:

 @Override
public boolean onPrepareOptionsMenu(Menu menu) {

    if (onDoneListener != null) {
        onDoneListener.OnDone();

    }
    return false;
}

编辑1:

我在评论者帮助后添加了下一个功能,但仍然没有运气。OnKeyDown() 也没有收到下一个菜单按钮按下。看起来菜单按钮在我按下后退按钮之前不会收到事件。这是代码:

    @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_MENU) {
        if (onDoneListener != null)
            onDoneListener.onDone();

    }
    return super.onKeyDown(keyCode, event);
}

我也试图返回真假,但不是运气。

4

1 回答 1

0

What you are seeing is the exact intended behavior of OnPrepareOptionsMenu. It runs before the menu is shown, not after.

于 2013-03-12T11:19:49.943 回答