Объявленный стиль XML не может быть найден из кода

Я пытаюсь добавить пользовательский атрибут (@drawable) в свой собственный вид и хочу получить его как resourceId. Каким-то образом мой View не может найти его, если я хочу получить к нему доступ через код:

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"/>

person Bart Burg    schedule 08.05.2014    source источник
comment
вам нужно import yourPKG.R; в вашем TouchImageView class   -  person M D    schedule 08.05.2014
comment
Да, я сделал это. Он распознает R, но не R.styleable.imageDrawable.   -  person Bart Burg    schedule 08.05.2014


Ответы (1)


Ах, это было довольно легко. По-видимому, стиль нужно было использовать в качестве префикса для атрибута, например: TouchImageView_imageDrawable. Таким образом, новый код будет таким:

int base = a.getResourceId(R.styleable.TouchImageView_imageDrawable, R.drawable.kaart);
person Bart Burg    schedule 08.05.2014