Tykin Tykin - 1 month ago 7
Android Question

Change ActionBar Background Color in code from Navigation List

I want to change the color of the Action Bar background when the user chooses a selection in the Navigation List.

Currently, my code looks like this:

@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
ColorDrawable colorDrawable = new ColorDrawable();
ActionBar actionBar = getActionBar();
if(itemPosition == 0)
{
colorDrawable.setColor(0xffFEBB31);
actionBar.setBackgroundDrawable(colorDrawable);
return true;
}
if(itemPosition == 1)
{
colorDrawable.setColor(0xff9ACC00);
actionBar.setBackgroundDrawable(colorDrawable);
return true;
}
return false;
}


However, the first time I select itemPosition 1 in the Navigation List, it changes the ActionBar color to white.

enter image description here

The second time I click the itemPosition 1 in the Navigation List, I have no issue.

enter image description here

Could anyone tell me why this is and how I can fix the problem? Thank you for the help!

Answer

Try this:

myActivity.invalidateOptionsMenu();