У меня определены следующие массивы:
<resources>
<array name="feature_styles">
<item>@array/style_main</item>
<item>@array/style_gray</item>
</array>
<array name="style_main">
<item>?attr/colorMain</item>
<item>?attr/colorMainLighter</item>
</array>
<array name="style_gray">
<item>?attr/colorGrayNormal</item>
<item>?attr/colorGrayWeak</item>
</array>
</resources>
Для каждого элемента в feature_styles
мне нужно разрешить ссылочный внутренний массив и извлечь из него фактические значения цвета.Эти цвета могут быть указаны внутри строки, либо как ссылки на R.color, либо как ссылки на атрибуты.Мой текущий код падает со следующей ошибкой:
java.lang.UnsupportedOperationException: Failed to resolve attribute at index 1: TypedValue{t=0x2/d=0x7f0400ab a=5}
Это мой текущий код:
val arr = res.obtainTypedArray(R.array.feature_styles);
for (i in 0 until arr.length()) {
val id = arr.getResourceId(i, 0);
if (id != 0) {
val itemArr = res.obtainTypedArray(id);
val mainColor = itemArr.getValue(0, 0)
itemArr.recycle()
}
}
arr.recycle()