Cómo cambiar el color del título de la barra de acciones en el código

Tengo problemas para cambiar el color del título de la barra de acciones androids programáticamente para v11 y superior. Puedo hacerlo en xml pero necesito cambiarlo dinámicamente en el código. ¿Cómo debo ir sobre esto? Gracias por adelantado.

El ActionBar título de ActionBar está oculto, o en otras palabras, es interno y no se puede acceder normalmente. Puede hacer referencia utilizando Resources.getIdentifier luego View.findViewById .

Toma la identificación para el action_bar_title

 int titleId = getResources().getIdentifier("action_bar_title", "id", "android"); 

Ahora puedes usar la ID con una TextView

 TextView abTitle = (TextView) findViewById(titleId); abTitle.setTextColor(colorId); 

Puede usar SpannableString y ForegroundColorSpan para establecer el color del título

  Spannable text = new SpannableString(actionBar.getTitle()); text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); actionBar.setTitle(text); 

Otra forma es usar Html

 getSupportActionBar().setTitle((Html.fromHtml("" + getString(R.string.some_string) + ""))); 

Si usa la biblioteca de v7 appcompat (probada con r22), puede llamar a setTitleTextColor() en el objeto Toolbar que sustituye la barra de acción para todos los niveles de API. Por ejemplo:

 Toolbar actionBarToolbar = (Toolbar)activity.findViewById(R.id.action_bar); if (actionBarToolbar != null) actionBarToolbar.setTitleTextColor(Color.RED); 

Si usa Sherlock Actionbar , puede usar sherlock-actionbar-id para las barras de acciones admitidas (Android debajo de 3.0)

 int titleId = Resources.getSystem().getIdentifier("action_bar_title", "id", "android"); if ( 0 == titleId ) titleId = com.actionbarsherlock.R.id.abs__action_bar_title;