如何在Android中更改首选项类别的文本颜色?

textColor属性不起作用。 这是我的XML:

 

有任何想法吗?

Solutions Collecting From Web of "如何在Android中更改首选项类别的文本颜色?"

使用此自定义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); } } 

并在Pref.xml文件中添加:

  

一种解决方案是为PreferenceScreen制作主题。 所以在你的themes.xml或styles.xml中(最好把它放在themes.xml中):

  

然后在你的AndroidManifest.xml中:

   

它对我来说很完美。

一种简单的方法是在这里设置preferenceCategory的自定义布局:

  

然后在preferences_category布局文件中设置代码:

  

要更改首选项类别的文本颜色,只需在Android Manifest中将主题设置为PreferenceActivity ,并确保colorAccent项存在。 此颜色由您的PreferenceCategory

 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; } } 

在你的prefs.xml中:

  . . .  

或者你也可以使用这个答案

其他方面将提到AppTheme中的主题,应用程序级别

     

XML :pref_category_view

 < ?xml version="1.0" encoding="utf-8"?>  

有关更多自定义,请访问v7首选项res

重要提示 :我正在使用lib v7 Preference中的PreferenceFragmentCompat 。

实际上只是使用colorAccentfind了偏好类别文本。

如果您的应用程序没有使用colorAccent样式,您可以转到styles.xml并查找
@color/colorPrimary ,并根据需要更改颜色。