关掉我的上一个问题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,也会出现选项菜单(在菜单显示给用户之前更改菜单)。我设法让它消失,但点击后退按钮(销毁活动)并重新创建活动。但为什么选项菜单仍然首先出现?我不想给客户带来负担,只需按下它就可以消失。
答案 0 :(得分:1)
我认为根据您运行的Android版本而定。只要您按下注销按钮并执行注销例程,您也应该调用invalidateOptionsMenu来刷新菜单。