colors.xml资源不起作用

时间:2011-07-10 12:54:02

标签: java android android-xml android-resources

我在/res/values/colors.xml下的Android应用中创建了一个colors.xml文件。内容是......

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="Green">#00ff00</color>
</resources>

我尝试使用...

更新我的TableRow的背景
    TableRow test = (TableRow)findViewById(R.id.tableRow2);
    test.setBackgroundColor(R.color.Green);

这不会将其设置为绿色,而是灰色。无论我添加到colors.xml文件的值是什么,它总是相同的灰色。不过这确实有用......

    TableRow test = (TableRow)findViewById(R.id.tableRow2);
    test.setBackgroundColor(android.graphics.Color.GREEN);

我的colors.xml有问题吗?

2 个答案:

答案 0 :(得分:22)

你应该改用:

TableRow test = (TableRow)findViewById(R.id.tableRow2);
test.setBackgroundColor(getResources().getColor(R.color.Green));

不幸的是资源ID和颜色具有相同的类型:int。您应该通过getColor()从资源中获取颜色值,并将该值用作颜色。当您使用资源ID作为颜色时。

答案 1 :(得分:4)

尝试使用命令setBackgroundResource,即

TableRow test = (TableRow)findViewById(R.id.tableRow2);
test.setBackgroundResource(R.color.Green);