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); } 

谢谢!

  • 本机actionbar.show()和hide()animation的持续时间是多少
  • 在ActionBarCompat中的项目总是显示在溢出
  • Android工作室预览窗格不呈现ActionBar?
  • 在ActionBar / Tabs中的Android自定义主题
  • 按下菜单button导致在没有ActionBar的Activity中崩溃
  • 更改每个选项卡在Android上滑动的操作栏标题
  • Android 4.2.2使得操作栏图标和标题可点击,就像同一个button的一部分一样
  • Inflate在XML中定义的ActionBarSherlock菜单
  • 使用invalidateOptionsMenu()使菜单失效 ,然后将代码放入onPrepareOptionsMenu区域。

    在你的FragmentActivity调用invalidateOptionsMenu()

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

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

     invalidateOptionsMenu() 

    要求API级别11 …

    用于较低的API使用:

     supportInvalidateOptionsMenu()