在attrs我有
<attr name="bzz" format="color" />
然后在主题
<style name="mytheme" parent="android:Theme">
<item name="bzz">@color/aaa</item>
</style>
并在代码中 这很棒
tv.setBackgroundResource(R.color.aaa);
但是当我这样做时它会给我一个错误
tv.setBackgroundResource(R.attr.bzz);
我不明白是什么问题,我的逻辑是我将bzz设置为颜色的参考,这样应该可以正常工作,但它不会:)
它像android.content.res.Resources$NotFoundException: Resource ID #0x7f010008
一样说
但我不明白找不到什么资源?
我确信如果我直接设置颜色就会有颜色,它的效果很好,没有正确连接的东西是显而易见的
谢谢
答案 0 :(得分:11)
您需要解析attr
以获取相应的color
的资源ID。然后,您可以将TextView
的后台资源设置为获取的资源ID。
示例代码:
TypedValue typedValue = new TypedValue();
getTheme().resolveAttribute(R.attr.bzz, typedValue, true);
tv.setBackgroundResource(typedValue.resourceId);