Java 在一个主题中定义多个textColor

Java 在一个主题中定义多个textColor,java,android,Java,Android,目前,我正试图在我的应用程序中为白天模式定义一个主题,为夜晚模式定义另一个主题。 我已经可以在这两者之间切换了,问题是我有白色文本颜色的文本视图,还有黑色文本颜色的文本视图。因此,我想知道是否有办法: 在一个主题中定义多个文本颜色 或 定义更改样式的主题,例如 //在布局中定义 //在样式中定义 @颜色/白色 @颜色/黑色 @颜色/浅红色 @颜色/红色 非常感谢。这可能会对你有所帮助。不是百分之百确定你想要什么 它是在一个地方定义所有颜色。此处是res>values>styles.xml

目前,我正试图在我的应用程序中为白天模式定义一个主题,为夜晚模式定义另一个主题。 我已经可以在这两者之间切换了,问题是我有白色文本颜色的文本视图,还有黑色文本颜色的文本视图。因此,我想知道是否有办法:

  • 在一个主题中定义多个文本颜色 或
  • 定义更改样式的主题,例如
//在布局中定义
//在样式中定义
@颜色/白色
@颜色/黑色
@颜色/浅红色
@颜色/红色

非常感谢。这可能会对你有所帮助。不是百分之百确定你想要什么

它是在一个地方定义所有颜色。此处是res>values>styles.xml

<resources>
<style name="AppBaseTheme" parent="android:Theme.Light">
</style>

<style name="AppTheme" parent="AppBaseTheme">
</style>

<color name="blueDefault">#2782AF</color>
<color name="blueBGDark">#226A87</color>
<color name="blueDark">#257493</color>
<color name="blueLight">#297F99</color>
<color name="greyDefault">#3F4144</color>

</resources>

#2782AF
#226A87
#257493
#297F99
#3F4144

我没有找到关于同一主题中定义的多个文本颜色的任何信息

我已经完成的一个解决方案是,为dayTheme设置一个默认textColor,为nightTheme设置另一个默认textColor。 对于所有其他不使用默认颜色的文本视图,我已经在布局中定义了它,在活动开始时,我检查所选内容,白天或晚上模式,并使用正确的布局调用setContentView

另一个解决方案是,声明一个自定义属性,例如textColorNight,并创建一个自定义textView,该自定义textView将使用该属性,然后检查当前选择的模式,以便确定是将textColor(日间模式)还是textColorNight(夜间模式)应用于其文本。
我认为第二个解决方案是一个更完善的解决方案,但由于时间不够,我还没有实现它。但下次我需要实现白天/晚上模式时,我会这样做。

,只是一些有用的阅读。谢谢,但如果我可以在一个主题中定义不同的文本颜色,这并不能回答我。例如,在你发布的代码中,我想为title textView定义白色文本颜色,为listView中的textView定义黑色文本颜色。您总是可以使用java编程实现这一点,但我猜您想使用xml实现吗?您可以在布局xml文件中声明它,但随后必须对每个不好的元素进行声明。
<resources>
<style name="AppBaseTheme" parent="android:Theme.Light">
</style>

<style name="AppTheme" parent="AppBaseTheme">
</style>

<color name="blueDefault">#2782AF</color>
<color name="blueBGDark">#226A87</color>
<color name="blueDark">#257493</color>
<color name="blueLight">#297F99</color>
<color name="greyDefault">#3F4144</color>

</resources>