Java 设置文本视图颜色时出现问题

Java 设置文本视图颜色时出现问题,java,android,xml,textview,Java,Android,Xml,Textview,这是我的彩色XML <resources> <drawable name="red">#7f00</drawable> <drawable name="blue">#770000ff</drawable> <drawable name="green">#7700ff00</drawable> <drawable name="yellow">#77ffff00</d

这是我的彩色XML

<resources>
    <drawable name="red">#7f00</drawable>
    <drawable name="blue">#770000ff</drawable>
    <drawable name="green">#7700ff00</drawable>
    <drawable name="yellow">#77ffff00</drawable>

    <drawable name="screen_background_black">#ff000000</drawable>
    <drawable name="translucent_background">#e0000000</drawable>
    <drawable name="transparent_background">#00000000</drawable>

    <color name="solid_red">#ED1C24</color>
    <color name="solid_blue">#0000ff</color>
    <color name="solid_green">#39B54A</color>
    <color name="solid_yellow">#ffffff00</color>

</resources>
以下是我的Java代码:

if (floatedChange < 0)
                            changeText.setTextColor(R.color.solid_red); //red
                        else
                            changeText.setTextColor(R.color.solid_green); //green
这在我使用Color.RED或Color.GREEN时有效,但在我使用自己的颜色时有效。这种颜色没有显现出来

为什么?

像这样做:

在XML文件中,使用样式:

这样做:

在XML文件中,使用样式:


很抱歉回答了一个老问题,但对于其他有相同问题的人,以下是正确答案: 从

所以只需将Java代码更改为

if (floatedChange < 0)
    changeText.setTextColor( getResources().getColor(R.color.solid_red) ); //red
else
    changeText.setTextColor( getResources().getColor(R.color.solid_green) ); //green

很抱歉回答了一个老问题,但对于其他有相同问题的人,以下是正确答案: 从

所以只需将Java代码更改为

if (floatedChange < 0)
    changeText.setTextColor( getResources().getColor(R.color.solid_red) ); //red
else
    changeText.setTextColor( getResources().getColor(R.color.solid_green) ); //green

我的位于/res/values/color.xml你有我有Sec吗,我会亲自检查。但我无法访问R.style.solid\u red,因为它是R.color.solid\u red的一部分。我的位于/res/values/color.xml你有我有Sec吗,我会亲自查看。但我无法访问R.style.solid\u red,因为它是R.color.solid\u red的一部分。这是一个更好的答案,因为它直接从资源中获取颜色,而不仅仅是创建一个新的样式资源。这是一个更好的答案,因为它直接从资源中获取颜色,而不仅仅是创建一个新的样式资源
Resources res = getResources();
int color = res.getColor(R.color.opaque_red);
if (floatedChange < 0)
    changeText.setTextColor( getResources().getColor(R.color.solid_red) ); //red
else
    changeText.setTextColor( getResources().getColor(R.color.solid_green) ); //green