2

カスタムリストビューの実装を作成しています。これは、xml で宣言された私のビューのインスタンスです。

<CustomListView android:id="@+id/list" android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:listSelector="@drawable/listview_background">
</CustomListView>

「android:listSelector」リソースの int 値またはコンストラクターから他の属性を取得することは可能ですか?

public CustomListView(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.listSelectorId = ???
}

これを試してみましたが、正しいリソース ID が返されません:

public CustomListView(Context context, AttributeSet attrs) {
    TypedArray a = context.obtainStyledAttributes(attrs, new int[]{android.R.attr.selectableItemBackground});
    this.selectorResourceId = a.getResourceId(0, 0);
}
4

1 に答える 1

3

attr.getAttributeResourceValue("http://schemas.android.com/apk/res/android", "listSelector", -1) トリックを行いました:)

于 2012-10-21T18:21:32.790 に答える