Объявленный XML-стиль не может быть найден из кода
Я пытаюсь добавить пользовательский атрибут (@drawable) в свой пользовательский вид и хочу получить его как resourceId. Каким-то образом мой вид не может найти его, если я хочу получить к нему доступ через код:
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.TouchImageView, defStyle, 0);
int base = a.getResourceId(R.styleable.imageDrawable, R.drawable.kaart);
Ошибка, которую я получил: не может быть решена или не является полем
Мой attrs.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="TouchImageView">
<attr name="imageDrawable" format="string"/>
</declare-styleable>
</resources>
XML в макете будет:
<nl.raakict.android.util.TouchImageView
android:id="@+id/plattegrond"
android:layout_width="match_parent"
android:layout_height="match_parent"
imageDrawable="@drawable/kaart"/>
1 ответ
Ах, это было довольно легко. Очевидно, стиль должен был использоваться в качестве префикса для атрибута, например так: TouchImageView_imageDrawable. Таким образом, новый код будет:
int base = a.getResourceId(R.styleable.TouchImageView_imageDrawable, R.drawable.kaart);