[英]How to change menu item dynamically/instantly?
我在操作栏上有一个3个活动的刷新按钮。 这3个活动是从BaseActivity
扩展的。 因此,这使我可以一次编写onCreateOptionsMenu(Menu menu) { //... }
方法。
当用户单击它时,我想将图标更改为refreshing
图标。
我可以处理单击和刷新操作,也可以更改图标,但是操作完成后无法处理更改图标。
最好的方法是什么才知道方法(位于从BaseActivity
扩展到BaseActivity
) BaseActivity
完成工作? 我必须使用interface
在BaseActivity
的onOptionsItemSelected()
方法上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.