我在/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有问题吗?
答案 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);