如何在不按下/销毁活动的情况下使选项菜单消失

时间:2014-08-20 23:56:56

标签: android facebook android-optionsmenu options-menu

关掉我的上一个问题Why is my options menu not showing the settings menu item correctly?, 一切的代码

@Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        // only add the menu when the selection fragment is showing
        if (fragments[SELECTION].isVisible()) {
            if (menu.size() == 0) {
                settings = menu.add(R.string.settings);
            }
            return true;
        } else {
            menu.clear();
            settings = null;
        }
        return false;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        if (item.equals(settings)) {
            showFragment(SETTINGS, true);
            return true;
        }
        return false;
    }

发生的事情是我设法登录正常,并注销正常。但是当我退出时,即使在onPrepareOptionsMenu中调用了menu.clear,也会出现选项菜单(在菜单显示给用户之前更改菜单)。我设法让它消失,但点击后退按钮(销毁活动)并重新创建活动。但为什么选项菜单仍然首先出现?我不想给客户带来负担,只需按下它就可以消失。

1 个答案:

答案 0 :(得分:1)

我认为根据您运行的Android版本而定。只要您按下注销按钮并执行注销例程,您也应该调用invalidateOptionsMenu来刷新菜单。