风格和主题的背景问题

Luk*_*kap 4 android themes styles android-theme

在我的attrs

<attr name="bzz" format="color" />
Run Code Online (Sandbox Code Playgroud)

然后在主题

<style name="mytheme" parent="android:Theme">
    <item name="bzz">@color/aaa</item>
</style>
Run Code Online (Sandbox Code Playgroud)

在代码中,这很有用

tv.setBackgroundResource(R.color.aaa);
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,它给了我一个错误

tv.setBackgroundResource(R.attr.bzz);
Run Code Online (Sandbox Code Playgroud)

我不明白是什么问题,我的逻辑是我将bzz设置为颜色的参考,以便它应该工作正常,但它不会:)它说android.content.res.Resources$NotFoundException: Resource ID #0x7f010008 但是我不明白什么资源无法找到?

我确信,如果我直接设置颜色是有瑕疵它很有效,那是不正确链接的东西

谢谢

Tia*_*ago 11

您需要解析attr以获取相应color的资源ID.然后,您可以将TextView后台资源设置为获取的资源ID.

示例代码:

TypedValue typedValue = new TypedValue();
getTheme().resolveAttribute(R.attr.bzz, typedValue, true);
tv.setBackgroundResource(typedValue.resourceId);
Run Code Online (Sandbox Code Playgroud)