Android 从XML设置时颜色设置不正确-在代码中工作
我正在与Android应用程序中的一种非常奇怪的行为作斗争。我有一个Android 从XML设置时颜色设置不正确-在代码中工作,android,xml,colors,Android,Xml,Colors,我正在与Android应用程序中的一种非常奇怪的行为作斗争。我有一个文本视图,其中背景和文本的颜色根据某些条件动态设置。为了简化,将针对错误检查某些条件,并以这种方式为文本视图设置颜色(请注意,添加文本视图的框架布局的背景颜色设置为@android:color/black): 颜色在XML中定义如下: <color name="bg_normal">#ffffff</color> <color name="bg_error">#ff0000</color
文本视图
,其中背景和文本的颜色根据某些条件动态设置。为了简化,将针对错误检查某些条件,并以这种方式为文本视图设置颜色(请注意,添加文本视图的框架布局的背景颜色设置为@android:color/black
):
颜色在XML中定义如下:
<color name="bg_normal">#ffffff</color>
<color name="bg_error">#ff0000</color>
<color name="txt_normal">#0000ff</color>
<color name="txt_error">#008080</color>
当然,我可以让它保持这种状态(它可以工作——为什么要修复它?),但我更愿意从XML中获取颜色,因为这样以后维护和修改会容易得多
有人知道问题可能是什么以及如何解决吗
另外,我将先发制人地建议我用XML创建文本视图,并通过说这是一个简化的代码来设置它的颜色。有许多这样的文本视图是动态创建的,其数量取决于外部参数。在编码时,我不知道这样的文本视图是1个还是100个。setBackgroundColor()
采用在int中编码的颜色。但您提供了一个资源id,这将生成错误/不同的结果。ª
而是从以下资源中获取编码的颜色:
tv.setBackGroundColor(getResources().getColor(R.color.bg_normal));
考虑到这是一种奇怪的设计,您不得不忽略它,其他资源设置程序也使用int,几乎一致地使用res-id。这是一种特殊情况。:) setBackgroundColor()
采用int中编码的颜色。但您提供了一个资源id,这将生成错误/不同的结果。ª
而是从以下资源中获取编码的颜色:
tv.setBackGroundColor(getResources().getColor(R.color.bg_normal));
考虑到这是一种奇怪的设计,您不得不忽略它,其他资源设置程序也使用int,几乎一致地使用res-id。这是一种特殊情况。:) 该死!,我想你是对的!让我试试这个-我会给你回复的。是的,就是这样!我讨厌那样愚蠢的错误!非常感谢,该死!,我想你是对的!让我试试这个-我会给你回复的。是的,就是这样!我讨厌那样愚蠢的错误!谢谢。
tv.setBackGroundColor(getResources().getColor(R.color.bg_normal));