Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从XML设置时颜色设置不正确-在代码中工作_Android_Xml_Colors - Fatal编程技术网

Android 从XML设置时颜色设置不正确-在代码中工作

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应用程序中的一种非常奇怪的行为作斗争。我有一个
文本视图
,其中背景和文本的颜色根据某些条件动态设置。为了简化,将针对错误检查某些条件,并以这种方式为文本视图设置颜色(请注意,添加文本视图的框架布局的背景颜色设置为
@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));