color.xml 资源不起作用

发布于 2024-11-19 16:40:46 字数 640 浏览 7 评论 0原文

我在 Android 应用程序的 /res/values/colors.xml 下创建了一个 color.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);

这不会将其设置为绿色,而是灰色。无论我向 color.xml 文件添加什么值,它始终是相同的灰色。然而这确实有效...

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

我的colors.xml 有问题吗?

I created a colors.xml file in my Android app under /res/values/colors.xml. The contents are...

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

I try to update the background of my a TableRow using...

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

This does not set it as green, it is gray instead. No matter what values I add to the colors.xml file, it is always the same gray color. However this does work...

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

Is something wrong with my colors.xml?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁月无声 2024-11-26 16:40:47

您应该改用它:

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

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

You should use this instead:

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

Its unfortunate that resource ID and color have same type: int. You should get color value from resources via getColor() and use that valu as color. While you are using resource ID as color.

蓝梦月影 2024-11-26 16:40:47

尝试使用命令 setBackgroundResource,即

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

Try instead using the command setBackgroundResource, ie

TableRow test = (TableRow)findViewById(R.id.tableRow2);
test.setBackgroundResource(R.color.Green);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文