您应该使用主题和样式来更改颜色值。请参阅:Styles and Themes
基本上,应该在styles.xml中声明颜色:
<style name="GreenText" parent="TextAppearance.AppCompat">
<item name="android:textColor">#00FF00</item>
</style>
<style name="RedText" parent="TextAppearance.AppCompat">
<item name="android:textColor">#ff0000</item>
</style>
然后声明在onCreate中使用哪个主题(在setContentView()之前:
switch (theme) {
case 1:
setTheme(R.style.Green);
break;
case 2:
setTheme(R.style.Red);
break;
}
编辑:您只能在onCreate()期间更改主题-如果以后要在运行时更改主题,则必须通过调用recreate()
遗憾的是,资源目录中的所有颜色值(和其他资源)都被硬编码为静态最终整数。这意味着无法在运行时更改值。但是,您可以使用以前建议的解决方案之一,也可以查看此出色的