问题
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)
来源:https://stackoverflow.com/questions/18292126/change-android-action-bar-menu-items-icon-on-click