Объявленный 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);
Другие вопросы по тегам