资源$ NotFoundException尝试更改颜色时

时间:2017-04-06 07:17:54

标签: android android-resources

我正在尝试改变我的小吃店的颜色

snackbarView.setBackgroundColor(ContextCompat.getColor(context, Color.RED));

我得到的是这样的东西:

android.content.res.Resources$NotFoundException: Resource ID #0xffff0000

肯定在哪里

  

0xFFFF0000地址

     

代表RED.But为什么它找不到这个资源?   有什么帮助吗?

6 个答案:

答案 0 :(得分:4)

使用:snackbarView.setBackgroundColor(Color.RED);

不是:snackbarView.setBackgroundColor(ContextCompat.getColor(context, Color.RED));

<强>原因:

查看official android developer siteit says that it need a color id.

因此,您可以直接为其添加颜色。无需向其添加ContextCompat.getColor()方法。

如果您想使用此功能,请使用有效的 资源ID,而不是颜色ID 作为getColor方法的第二个参数。 因为它来自official website

enter image description here

它需要资源ID,而不是颜色ID。 希望,现在,你可以理解这件事。

答案 1 :(得分:2)

试试这个: -

在values.xml中,创建colors.xml并添加以下行:

<color name="red">#FF0000</color>

然后像这样调用这种颜色: -

snackbarView.setBackgroundColor(ContextCompat.getColor(context,R.color.red));

答案 2 :(得分:1)

你要

  

资源$ NotFoundException:资源ID#0xffff0000

无法找到请求的资源时,资源API会抛出此异常。

创建包含颜色的自定义 colors.xml

<强> RES /值/ colors.xml:

<?xml version="1.0" encoding="utf-8"?>
 <resources>
 <color name="red">#ff0000 </color>

</resources> 

,然后

setBackgroundColor(ContextCompat.getColor(context, R.color.red));

或简单

 setBackgroundColor(Color.parseColor("#ff0000"));

答案 3 :(得分:0)

尝试设置这样的背景颜色:

snackbarView.setBackgroundColor(ContextCompat.getColor(context, R.color.RED));

答案 4 :(得分:0)

Color.RED是一种颜色而不是ID。你应该这样做:

snackbarView.setBackgroundColor(Color.RED);

答案 5 :(得分:0)

您将Color.RED(一个int值)视为resourceId。逻辑错误! 只需使用Color.RED insted。 snackbarView.setBackgroundColor(Color.RED)