El atributo textColor no funciona. Aquí está mi XML:¿Cómo cambiar el color del texto de la categoría de preferencia en Android?
<PreferenceCategory
android:title="Title"
android:textColor="#00FF00">
¿Alguna idea?
El atributo textColor no funciona. Aquí está mi XML:¿Cómo cambiar el color del texto de la categoría de preferencia en Android?
<PreferenceCategory
android:title="Title"
android:textColor="#00FF00">
¿Alguna idea?
uso esta clase personalizar PreferenceCategory:
public class MyPreferenceCategory extends PreferenceCategory {
public MyPreferenceCategory(Context context) {
super(context);
}
public MyPreferenceCategory(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyPreferenceCategory(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onBindView(View view) {
super.onBindView(view);
TextView titleView = (TextView) view.findViewById(android.R.id.title);
titleView.setTextColor(Color.RED);
}
}
y añadir esto a su archivo Pref.xml:
<ali.UI.Customize.MyPreferenceCategory android:title="@string/pref_server" />
Una solución es hacer un tema para su PREFERENCE. Así que en su themes.xml o styles.xml (mejor ponerlo en themes.xml):
<style name="PreferenceScreen" parent="YourApplicationThemeOrNone">
<item name="android:textColor">@color/yourCategoryTitleColor</item>
</style>
entonces en su AndroidManifest.xml:
<activity
android:name="MyPreferenceActivity"
...
android:theme="@style/PreferenceScreen" >
</activity>
funcionó perfectamente para mí.
Para mí, esta es la respuesta correcta – Javi
public class MyPreferenceCategory extends PreferenceCategory {
public MyPreferenceCategory(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MyPreferenceCategory(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyPreferenceCategory(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
@Override
protected View onCreateView(ViewGroup parent) {
// It's just a TextView!
TextView categoryTitle = (TextView)super.onCreateView(parent);
categoryTitle.setTextColor(parent.getResources().getColor(R.color.orange));
return categoryTitle;
}
}
Y en su prefs.xml:
<com.your.packagename.MyPreferenceCategory android:title="General">
.
.
.
</com.your.packagename.MyPreferenceCategory>
O también puede utilizar este answer
Esto funcionó perfectamente para mí con una modificación. En lugar de 'categoryTitle.setTextColor (parent.getResources() GetColor (R.color.orange).);' tuve que usar 'categoryTitle.setTextColor (Color.BLACK);' – ckn
Una manera fácil de hacer esto es establecer el diseño personalizado para la preferenceCategory aquí:
<PreferenceCategory
android:layout="@layout/preferences_category"
android:title="Privacy" >
A continuación, establezca el código dentro de su archivo de distribución de preferencias_category:
<TextView
android:id="@android:id/title"
android:textColor="@color/deep_orange_500"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:textStyle="bold"
android:textAllCaps="true"/>
revés será menciona el tema en su AppTheme, nivel de aplicación
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
.....//your other items
<item name="preferenceTheme">@style/PrefTheme</item>
</style>
<style name="PrefTheme" parent="@style/PreferenceThemeOverlay">
<item name="preferenceCategoryStyle">@style/CategoryStyle</item>
</style>
<style name="CategoryStyle" parent="Preference.Category">
<item name="android:layout">@layout/pref_category_view</item>
</style>
XML: pref_category_view
<?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@android:id/title"
style="?android:attr/listSeparatorTextViewStyle"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:textColor="@color/red"
android:layout_height="wrap_content"
/>
Para la visita más personalización v7 Preferences res
Importante: Estoy utilizando PreferenceFragmentCompat de lib v7 Preference.
Happy_Coding;
Para cambiar el color del texto de la categoría de preferencia, solo establezca un tema en su PreferenceActivity
en su manifiesto de Android y asegúrese de que colorAccent existe. Este color es tomado por su PreferenceCategory
.
¡Esta es la respuesta correcta! Agregue
En realidad acabo de descubrir ese texto de categoría de preferencia usando colorAccent
.
Si su aplicación no usa el estilo de colorAccent
, puede ir al styles.xml
y encontrar <item name="colorAccent">@color/colorPrimary</item>
, y cambiar el color como desee.
IMO, esta es la respuesta correcta a partir de Lollipop y el diseño del material. Referencia: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/frameworks/base/core/res/res/layout/preference_category_material.xml? av = f – Ginandi
Encontré que 'findViewById()' todavía no funcionaba en 'onBindView()'. Lo hice en 'onCreateView()', que funcionó. – ryan
'titleView.setTextColor (Color.RED);' throws 'NullPointerException'. ¿Alguna solución? –
La corrección está en el primer comentario en sí ... – Rohan