【问题标题】:background issue with styles and themes样式和主题的背景问题
【发布时间】:2013-01-25 23:23:52
【问题描述】:

在我的属性中

<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 但我不明白找不到什么资源?

我敢肯定,如果我直接设置颜色,它会很好用,到底是什么东西没有正确链接

谢谢

【问题讨论】:

  • 有类似的问题。逻辑上是合理的。不知道为什么它不起作用。

标签: android themes styles android-theme


【解决方案1】:

你需要解析attr,才能得到对应color的资源id。然后可以将TextView的后台资源设置为获取到的资源id。

示例代码:

TypedValue typedValue = new TypedValue();
getTheme().resolveAttribute(R.attr.bzz, typedValue, true);
tv.setBackgroundResource(typedValue.resourceId);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多