4

私が持っている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 に表示されますが、どのリソースが見つからないのかわかりません ?

直接設定すると色に罪があると確信しています。正しくリンクされていないのは正確には何ですか

ありがとう

4

1 に答える 1

11

attrを解決して、対応するcolorのリソース IDを取得する必要があります。TextView次に、のバックグラウンド リソースを、取得したリソース ID に設定できます。

コード例:

TypedValue typedValue = new TypedValue();
getTheme().resolveAttribute(R.attr.bzz, typedValue, true);
tv.setBackgroundResource(typedValue.resourceId);
于 2013-01-25T15:23:52.007 に答える