刷新操作栏项目图标

时间:2014-10-07 08:30:35

标签: android android-actionbar

这很好用,但是如果我使用其他活动而我使用后退按钮,它就不会更新操作栏,因为活动已经创建并且它不会更新行动吧。已经尝试在on_create方法上使用supportInvalidateOptionsMenu()但它没有用。

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    Cursor cursor = messages.getMessages();
    if(cursor.getCount()>0){
        inflater.inflate(R.menu.actionbar1, menu);
    }else{
        inflater.inflate(R.menu.actionbar2, menu);
    }
    return super.onCreateOptionsMenu(menu);
}

2 个答案:

答案 0 :(得分:2)

正如onCreateOptionsMenu(Menu)所述的文档:

  

仅在选项菜单第一次调用时调用一次   显示。要在每次显示菜单时更新菜单,请参阅   onPrepareOptionsMenu(菜单)。

因此,返回已创建的Activity不会再次触发onCreateOptionsMenu(Menu)。 我建议你做的只是创建一个包含所有菜单项的菜单,并根据一个或多个标志在onPrepareOptionsMenu(Menu)中有选择地激活/停用它们。然后将invalidateOptionsMenu()放在每次显示活动时调用的onResume()中。

希望有所帮助

答案 1 :(得分:1)

每当您需要更改图标时,请尝试拨打invalidateOptionsMenu。 它会通过调用onPrepareOptionsMenu来破坏您的菜单并重新充气。