Android的ActionBar重新创build选项菜单

在Android中使用ActionBar时,如何刷新选项菜单? 我试图隐藏和显示栏,一起获取它的新实例“getSupportActionBar()”

我正试图实现一个login/注销button,将根据用户的状态dynamic变化。

这是我的onCreateOptionsMenu方法

@Override public boolean onCreateOptionsMenu(Menu menu) { if (loggedIn) menu.add(0, MENU2, 0, "Logout").setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); else menu.add(0, MENU2, 0, "Login").setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); menu.add(0, MENU1, 0, "Home").setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); return super.onCreateOptionsMenu(menu); } 

谢谢!

Solutions Collecting From Web of "Android的ActionBar重新创build选项菜单"

使用invalidateOptionsMenu()使菜单失效 ,然后将代码放入onPrepareOptionsMenu区域。

在你的FragmentActivity调用invalidateOptionsMenu()

这也是一个公共方法,所以如果你想从片段中调用getActivity().invalidateOptionsMenu()

顺便说一句,如果您使用的是SherlockActionBar,则需要从该片段中调用getSherlockActivity().invalidateOptionsMenu() ,否则会得到一个exception。

 invalidateOptionsMenu() 

要求API级别11 …

用于较低的API使用:

 supportInvalidateOptionsMenu()