Как программно изменить цвет текста элемента меню ActionBar?

У меня есть actionBar с несколькими элементами, я хотел бы изменить цвет текста при щелчке элемента. Есть ли способ сделать это программно? Просьба представить и пример или любые ресурсы.

благодаря

public void catalogClick(MenuItem item){ //highlight menuitem etc. } 

Solutions Collecting From Web of "Как программно изменить цвет текста элемента меню ActionBar?"

Следуйте этой ссылке, которая объясняет, как программно изменить текст меню.

http://developer.android.com/guide/topics/ui/actionbar.html#Style

Проверьте андроид: actionMenuTextColor для определения ресурса стиля для текста.

Чтобы изменить без определения ресурса стиля, мы можем использовать SpannableString.

  @Override public boolean onPrepareOptionsMenu(Menu menu) { //To style first menu item MenuItem menuItem = menu.getItem(0); CharSequence menuTitle = menuItem.getTitle(); SpannableString styledMenuTitle = new SpannableString(menuTitle); styledMenuTitle.setSpan(new ForegroundColorSpan(Color.parseColor("#00FFBB")), 0, menuTitle.length(), 0); menuItem.setTitle(styledMenuTitle); return super.onPrepareOptionsMenu(menu); } @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { Toast.makeText(this, item.getTitle() + " clicked!", Toast.LENGTH_LONG).show(); return true; } 

При форматировании стиля текста вы получите исключение типа «Недопустимый тип полезной нагрузки». Чтобы этого избежать, переопределите onMenuItemSelected и используйте return true или false.

Справка:

Android: java.lang.IllegalArgumentException: недопустимый тип элемента полезной нагрузки

http://vardhan-justlikethat.blogspot.in/2013/02/solution-invalid-payload-item-type.html

Попробуйте Firewall_Sudhan ответить, но итерации подменю меню

 @Override public void onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); SubMenu subMenu = menu.getItem(0).getSubMenu(); for (int i = 0; i < subMenu.size(); i++) { MenuItem menuItem = subMenu.getItem(i); CharSequence menuTitle = menuItem.getTitle(); SpannableString styledMenuTitle = new SpannableString(menuTitle); styledMenuTitle.setSpan(new ForegroundColorSpan(Color.BLACK), 0, menuTitle.length(), 0); menuItem.setTitle(styledMenuTitle); } }