Quiero cambiar el aspecto de la pantalla de preferencias de la aplicación de Android al color de texto oscuro. ¿Cómo puedo hacer esto? (Ya he cambiado el fondo al color blanco)Cambiar color de texto de preferencia de preferencia
Respuesta
Supongo que usa una Actividad que extiende el PreferenceActivity
. Puede usar 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 la pusieron en su actividad:
setTheme(R.style.Theme_DarkText);
Tomé la idea de Udinic, pero mejoró un poco. Ahora es posible establecer el color de (en este caso) PreferenceCategory en cualquier momento, y no solo al inflar la vista.
¿Cómo hacerlo?
En primer lugar, crear su clase personalizada como este:
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 esto, usted tiene que usarlo mientras se define su configuración en XML.
Después sólo hay que utilizar este bucle en su preferenceActivity java:
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í es la idea. Puede hacerlo para cualquiera de sus configuraciones, y en cualquier momento. El diseño debe haberse cargado por completo antes de usar este código, porque de lo contrario, getListView(). GetCount() devolverá 0. No funcionaré si lo usa en onCreate para ejemplo. Si desea hacer eso al inicio, le sugiero que haga eso en el método onWindowFocusChanged.
No funcionará cuando haya más elementos que la pantalla pueda caber, porque ListView implementa el reciclaje de vistas y no crea * todas * vistas –
- 1. Preferencia de tienda Eclipse Preferencia
- 2. cambio de color Preferencia artículo Resumen Texto en Android 4
- 3. título preferencia Android estilo de texto/Resumen
- 4. ¿Cómo cambiar el color del texto de la categoría de preferencia en Android?
- 5. Android: Estilo de preferencia
- 6. Ocultar una preferencia en una actividad de preferencia
- 7. Android: lanzar una preferencia personalizada desde una actividad de preferencia
- 8. ¿prefijo horizontal de preferencia android en preferencia personalizada?
- 9. Bloque de texto de visualización de pantalla de preferencia
- 10. ¿Cómo puedo configurar el color de texto de resumen de preferencia de Android?
- 11. personalizar la casilla de verificación preferencia
- 12. Uso de preferencia de lista en Android
- 13. Configuración del campo Resumen de preferencia de UI al valor de la preferencia
- 14. Preferencia de inicialización de variables en C++
- 15. Valor predeterminado de la preferencia de Android
- 16. Preferencia de conversión del tipo de PHP
- 17. Preferencia de operadores de conversión implícita C++
- 18. Después de cambiar una preferencia (una configuración), el texto que muestra la configuración no se actualiza
- 19. Activar y desactivar una preferencia
- 20. Cómo utilizar DatePickerDialog como preferencia
- 21. PreferenceActivity con preferencia varios archivos
- 22. evento Change preferencia con jQuery
- 23. ¿Es posible lanzar un DialogFragment desde una preferencia en una actividad de preferencia?
- 24. ¿Cómo eliminar una preferencia de PreferenceActivity?
- 25. Caché de datos en Preferencia compartida
- 26. Cómo crear mi propia clase de Preferencia
- 27. Eliminar/ocultar una preferencia de la pantalla
- 28. Preferencia valor por defecto tono de
- 29. Pantalla negra en la preferencia interiorScreen
- 30. Valor de preferencia personalizado de Android no guardado
¿Qué ocurre si desea cambiar el color del texto * después de que * se haya construido el diseño? –
@MarioB Este código puede cambiar el color del texto del título de las preferencias, excepto EditTextPreference. ¿Cuál es el nombre del atributo para el título de EditTextPreference (no el título del diálogo)? – shantanu