繁体   English   中英

如何动态/立即更改菜单项?

[英]How to change menu item dynamically/instantly?

我在操作栏上有一个3个活动的刷新按钮。 这3个活动是从BaseActivity扩展的。 因此,这使我可以一次编写onCreateOptionsMenu(Menu menu) { //... }方法。

当用户单击它时,我想将图标更改为refreshing图标。

我可以处理单击和刷新操作,也可以更改图标,但是操作完成后无法处理更改图标。

最好的方法是什么才知道方法(位于从BaseActivity扩展到BaseActivityBaseActivity完成工作? 我必须使用interfaceBaseActivityonOptionsItemSelected()方法上BaseActivity进行处理吗?

当您想更改图标时,调用invalidateOptionsMenu() (这将触发onCreateOptionsMenu(Menu menu)被调用)并添加一些逻辑以更改onCreateOptionsMenu(Menu menu)的图标,例如

@Override
  public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.id.menu, menu);
    if(isRefreshing()){
      menu.findItem(R.id.refresh).setIcon(R.drawable.refreshing);
    }else{
      menu.findItem(R.id.refresh).setIcon(R.drawable.refresh);
    }
  }

上面的代码将使菜单资源R.id.menu膨胀,并根据isRefreshing()的结果更改图标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM