Change Android Action Bar Menu Item's Icon on

2019-07-18 03:59发布

问题:

I'm using sherlock action bar. I have 2 items on the action bar. When the item is chosen (active), I want to change the icon's image.

This is my code on 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;
}

but when I do this the icon become double, and the icon won't change neither. Can someone help?

回答1:

Use the on onOptionsItemSelected method

@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);
      }
  }

you may need to include the correct namespace for the ActionBar Sherlock library to ensure it Overrides the correct menu item. So the start of the method will look like this:

@Override
  public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item)