Итак, у меня есть цвет, определенный как атрибут, потому что он зависит от темы.
<attr name="primary_text_color" format="color"/>
Он определен в теме как
<style name="BaseReferencesTheme" parent="Theme.AppCompat.NoActionBar">
<item name="primary_text_color">#ffffffff</item>
</style>
Я бы хотелобернуть его реальным цветным ресурсом.
<color name="selected_color_normal">?attr/primary_text_color</color>
А затем прочитать его из кода
int resolvedColor = ContextCompat.getColor(context, R.color.selected_color_normal);
Когда я это делаю, я получаю исключение
android.content.res.Resources$NotFoundException: Resource ID #0x7f06010e type #0x2 is not valid
at android.content.res.Resources.getColor(Resources.java:955)
at android.content.Context.getColor(Context.java:588)
at android.support.v4.content.ContextCompat.getColor(ContextCompat.java:523)
Здесь я работаю с несколькими модулями:
attr_module
, где определены атрибуты. theme_module
, где тема определена и установлена для приложения usage_module
, который ничего не знает о теме, но зависит от attr_module
.
Я точно знаю, что тема применяется к представлениям в usage_module
,Все зависимости установлены правильно, когда я не пытаюсь программно прочитать selected_color_normal
, а просто применяю атрибут - все работает.
Спасибо за любую помощь!