我在操作栏上有3个活动的刷新按钮。这3项活动从BaseActivity
延伸。这样我就可以一次编写onCreateOptionsMenu(Menu menu) { //... }
方法。
当用户点击它时,我想将图标更改为refreshing
图标。
我可以处理点击和刷新操作,也可以更改图标,但在操作完成后无法处理更改图标。
知道某个方法(位于BaseActivity
以外的活动中)何时完成其工作的最佳方式是什么?我是否必须使用interface
来处理BaseActivity
的{{1}}方法?
答案 0 :(得分:0)
如果您想更改图标,请拨打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()
的结果更改图标。