如何在Android中更改开关的textcolor

我正在创build一个使用Android 4.0的应用程序。 我想知道是否可以更改交换机中文本的文本颜色。

我已经尝试设置文本的颜色,但它不起作用。

有任何想法吗?

提前致谢!

Solutions Collecting From Web of "如何在Android中更改开关的textcolor"

你必须使用android:switchTextAppearance属性,例如:

 android:switchTextAppearance="@style/SwitchTextAppearance" 

和风格:

 <style name="SwitchTextAppearance" parent="@android:style/TextAppearance.Holo.Small"> <item name="android:textColor">@color/my_switch_color</item> </style> 

你也可以在代码中使用上面的样式:

 mySwitch.setSwitchTextAppearance(getActivity(), R.style.SwitchTextAppearance); 

…和setTextColorSwitch – 如果您的SwitchTextAppearance风格不提供textColor将使用此颜色

你可以在setSwitchTextAppearance中的Switch源代码中检查它:

  ColorStateList colors; int ts; colors = appearance.getColorStateList(com.android.internal.R.styleable. TextAppearance_textColor); if (colors != null) { mTextColors = colors; } else { // If no color set in TextAppearance, default to the view's textColor mTextColors = getTextColors(); } ts = appearance.getDimensionPixelSize(com.android.internal.R.styleable. TextAppearance_textSize, 0); if (ts != 0) { if (ts != mTextPaint.getTextSize()) { mTextPaint.setTextSize(ts); requestLayout(); } } 

TextView.setTextColor()从xml文件中获取表示颜色的int(例如0xFFF5DC49)而不是资源ID。 在一个活动中,你可以做一些事情:

textView1.setTextColor(getResources().getColor(R.color.mycolor))

在一个活动之外,你将需要一个上下文例如。

textView1.setTextColor(context.getResources().getColor(R.color.mycolor))

欲了解更多,请参考

我想你必须看看你正在使用的应用程序的主题。 因为开关的颜色是主题的责任,afaik。 所以我build议你看看你如何改变一个主题的设置。 或者您可以使用新颜色创build自定义主题。