фоновая проблема со стилями и темами - PullRequest
4 голосов
/ 06 октября 2011

в 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 но я не понимаю, какой ресурс не может быть найден?

Я уверен, что цвет есть грехи, если я установлю его напрямую, он прекрасно работает, что это за штука, которая не связана правильно

Спасибо

1 Ответ

11 голосов
/ 25 января 2013

Вам необходимо разрешить attr, чтобы получить соответствующий идентификатор ресурса color. Затем вы можете установить фоновый ресурс TextView на полученный идентификатор ресурса.

Пример кода:

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