Cambiar el color de texto PreferenceActivity

Quiero cambiar el aspecto de la pantalla de preferencias de la aplicación de Android a color de texto oscuro. ¿Cómo puedo hacer esto? (He cambiado ya el fondo al color blanco)

Supongo que usas una Actividad que extiende la PreferenceActivity . Puede utilizar el método setTheme para establecer un tema personalizado en su pantalla de preferencias. Simplemente defina uno en res/values/themes.xml .

Se vería así:

 <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="Theme.DarkText"> <item name="android:textColor">#000000</item> </style> </resources> 

Después, establézcalo en tu Actividad:

 setTheme(R.style.Theme_DarkText); 

Tomé la idea de Udinic, pero la mejoré un poco. Ahora es posible establecer el color de (en este caso) la categoría de preferencias en cualquier momento, y no sólo al inflar la vista.

Cómo hacerlo ?

En primer lugar, cree su clase personalizada tal como ésta:

 import android.content.Context; import android.preference.PreferenceCategory; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class MyPreferenceCategory extends PreferenceCategory { private TextView categoryTitle; public PincardPreferenceCategory(Context context) { super(context); // TODO Auto-generated constructor stub } public PincardPreferenceCategory(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } public PincardPreferenceCategory(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub } @Override protected View onCreateView(ViewGroup parent) { categoryTitle = (TextView)super.onCreateView(parent); return categoryTitle; } public void setBackgroundColor(int color) { categoryTitle.setBackgroundColor(color); } public void setTextColor(int color) { categoryTitle.setTextColor(color); } } 

Una vez que se hace, usted tiene que utilizarlo mientras que define sus ajustes en XML.

Después de que sólo tiene que utilizar este bucle en su preferencia javaActividad:

  for (int i = 0; i < getListView().getCount(); i++) { Object view = getListView().getItemAtPosition(i); if (view instanceof PincardPreferenceCategory) { ((PincardPreferenceCategory)view).setBackgroundColor(Color.BLUE); ((PincardPreferenceCategory)view).setTextColor(Color.RED); } } 

Aquí está la idea. Puede hacerlo para cualquiera de sus configuraciones, y en cualquier momento. El diseño debe haber sido totalmente cargado antes de usar este código, porque de lo contrario, getListView (). GetCount () devolverá 0. No voy a trabajar si se utiliza en onCreate por ejemplo. Si desea hacerlo en el inicio, le sugiero que lo haga en el método onWindowFocusChanged.

  • Cambiar dinámicamente el recurso widgetlayout de la preferencia de Android
  • Cómo cargar la misma preferencia de pantalla en el detalle PreferenceFragment
  • NullPointerException en android.widget.ArrayAdapter.createViewFromResource
  • Cómo aplicar el tema a <PreferenceScreen> elementos de una <PreferenceCategory>
  • Cómo configurar el diseño personalizado para PreferenceActivity en Android 3.0?
  • No puedo averiguar cómo usar un android PreferenciaActividad
  • Uso de preferencias no predeterminadas en PreferenceActivity
  • Usar getSupportFragmentManager () Dentro de PreferenceActivity
  • Preferencias de Android y fragmentos de diálogo
  • ActionBar en PreferenceFragment no volver a calcular la altura y el tamaño de fuente
  • Preferencias personalizadasCategorías
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.