0

结束我的最后一个问题为什么我的选项菜单没有正确显示设置菜单项?, 一切的代码

@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(在向用户显示之前更改菜单),选项菜单仍然出现。我设法让它消失,但单击后退按钮(破坏活动)并重新创建活动。但是为什么选项菜单仍然出现在第一位?我不想让客户背负压力以使其消失。

4

1 回答 1

1

我认为取决于您运行的 Android 版本。一旦按下注销按钮并执行注销例程,您还应该调用 invalidateOptionsMenu 来刷新菜单。

于 2014-08-21T00:01:50.333 回答