0

我在操作栏上有一个用于 3 个活动的刷新按钮。这 3 项活动从BaseActivity. 所以这让我可以onCreateOptionsMenu(Menu menu) { //... }一次性编写方法。

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

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

知道方法(位于从 扩展的活动中BaseActivity)何时完成其工作的最佳方法是什么?我必须使用's方法interface来处理它吗?BaseActivityonOptionsItemSelected()

4

1 回答 1

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().

于 2013-08-10T11:40:13.063 回答