最近项目中要用到一个东东: 点击菜单要根据状态来显示选项。

最初采用的是onCreateOptionsmenu,return false的话,基本你在menu里面执行了添加item的操作,那么也会没反应的, 只有在return true的情况下,你添加的菜单项才会突显出来.

so,如何解决呢?

public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
// MenuInflater inflater = getMenuInflater();
// inflater.inflate(R.menu.menu_main, menu);

menu.clear();//must clear first in onPrepareOptionsMenu

if(loginSuccess)
{
Log.e("", "login success");
menu.add(0, 0, 0, "注销");
menu.add(0, 1, 0, "退出");
}
else
{
Log.e("", "do not login");
menu.add(0, 0, 0, "注册");
menu.add(0, 1, 0, "登陆");
menu.add(0, 2, 0, "退出");
}
return true;
}


调用onPrepareOptionsMenu
在调用这个方法的时候有必要注意一点,每次调用之前都先调用下menu.clear,或者直接更新里面的元素,不然每次都次点击menu菜单都会添加2个item.