ArrayAdapter - 获取列表项的给定资源ID

时间:2014-10-15 09:46:23

标签: android listview resources

在扩展ArrayAdapter时,我可以选择一个带有resource作为参数的构造函数:

ArrayAdapter(Context context, int resource, T[] objects) 

此资源可用作ListView项目的布局。但是,如何访问给定资源?我找不到像getResource或getItemLayoutResource这样的方法。我现在所做的只是构造函数中的this.resource = resource所以我以后可以使用它。但是,如果我可以通过以下方式将资源提供给BaseAdapter,我为什么要这样做呢?

super(context, resource, objects);

为什么我需要这个:我想在getView上的LayoutInflator中使用它。 也许我理解这个参数错了。它在super上究竟做了什么?

1 个答案:

答案 0 :(得分:5)

super做的事与你的做法非常相似,getView的基本实现使用它。 如果您只使用ArrayAdapter而不扩展它并为其提供类似simple_list_item_1的资源,您将获得字符串的基本显示。

您可以在此处查看代码: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.4.4_r1/android/widget/ArrayAdapter.java#ArrayAdapter.0mResource

public View getView(int position, View convertView, ViewGroup parent) {
    return createViewFromResource(position, convertView, parent, mResource);
}

其中mResource是从您在构造函数中提供的资源中保存的。

不幸的是,它是一个没有getter的私人成员