无法从代码中找到声明的XML样式

时间:2014-05-08 08:44:40

标签: android xml android-custom-view declare-styleable

我尝试将自定义属性(@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"/>

1 个答案:

答案 0 :(得分:0)

啊,这很容易。显然,必须使用样式作为属性的前缀,如下所示:TouchImageView_imageDrawable。所以新代码将是:

int base = a.getResourceId(R.styleable.TouchImageView_imageDrawable, R.drawable.kaart);