2

我正在使用夏洛克动作栏。我在操作栏上有 2 个项目。当项目被选择(活动)时,我想更改图标的图像。

这是我在 Java 上的代码

    @Override
    public boolean onPrepareOptionsMenu (Menu menu){
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.menutes, menu);
    todaySched=menu.findItem(R.id.todaySched);
    if(todaySched.isEnabled()){
        todaySched.setIcon(R.drawable.calendarselected);

    }
    return true;
}

但是当我这样做时,图标变成双倍,图标也不会改变。有人可以帮忙吗?

4

1 回答 1

2

使用 onOptionsItemSelected 方法

@Override
  public boolean onOptionsItemSelected(MenuItem item) {
      switch (item.getItemId()) {
          case R.id.todaySched:

              // put your code here to change the icon
              return true;

          default:
              return super.onOptionsItemSelected(item);
      }
  }

您可能需要为 ActionBar Sherlock 库包含正确的命名空间,以确保它覆盖正确的菜单项。所以方法的开始看起来像这样:

@Override
  public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item)
于 2013-08-17T18:42:22.790 回答