Android的动作条重新创建选项菜单(Android ActionBar Recreate Opt

2019-07-31 03:29发布

当使用在Android上动作条,你怎么刷新选项菜单? 我试图隐藏和显示栏,以获取它的一个新实例伴随着“getSupportActionBar()”

我想实现一个登录/注销按钮,将根据用户的状态动态地改变。

这里是我的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);
}

谢谢!

Answer 1:

无效来菜单invalidateOptionsMenu() ,然后把你的代码在onPrepareOptionsMenu区域。



Answer 2:

在您的FragmentActivity调用invalidateOptionsMenu()

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

顺便说一句,如果你使用SherlockActionBar你需要调用getSherlockActivity().invalidateOptionsMenu()从片段,否则你会得到一个异常。



Answer 3:

invalidateOptionsMenu() 

需要API级别11 ...

较低的API使用:

supportInvalidateOptionsMenu()


文章来源: Android ActionBar Recreate Options Menu