如何在Android中更改开关的textcolor

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

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

有任何想法吗?

提前致谢!

  • 如果 - 其他工作,切换不
  • 在Android中来回切换活动
  • 你必须使用android:switchTextAppearance属性,例如:

     android:switchTextAppearance="@style/SwitchTextAppearance" 

    和风格:

      

    您也可以在代码中执行此操作,也使用以上样式:

     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()采用表示颜色的int(例如0xFFF5DC49)而不是xml文件中的资源id。 在活动中,您可以执行以下操作:

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

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

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

    有关更多信息,请参阅

    我认为您必须查看您正在使用的主题。 因为开关的颜色是主题的责任,afaik。 所以我建议您看看如何更改主题的设置。 或者您可以使用新颜色创建自定义主题。