在扩展ArrayAdapter时,我可以选择一个带有resource作为参数的构造函数:
ArrayAdapter(Context context, int resource, T[] objects)
此资源可用作ListView项目的布局。但是,如何访问给定资源?我找不到像getResource或getItemLayoutResource这样的方法。我现在所做的只是构造函数中的this.resource = resource所以我以后可以使用它。但是,如果我可以通过以下方式将资源提供给BaseAdapter,我为什么要这样做呢?
super(context, resource, objects);
为什么我需要这个:我想在getView上的LayoutInflator中使用它。 也许我理解这个参数错了。它在super上究竟做了什么?
答案 0 :(得分:5)
super做的事与你的做法非常相似,getView的基本实现使用它。 如果您只使用ArrayAdapter而不扩展它并为其提供类似simple_list_item_1的资源,您将获得字符串的基本显示。
public View getView(int position, View convertView, ViewGroup parent) {
return createViewFromResource(position, convertView, parent, mResource);
}
其中mResource是从您在构造函数中提供的资源中保存的。
不幸的是,它是一个没有getter的私人成员