mData = data;
mResource = mDropDownResource = resource;
mFrom = from;
mTo = to;
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
可以看到其中五个参数分别代表着
context:要使用的上下文环境,大多数情况下都是填this。
data:是一个List<? extends Map<String,?>>类型的键值对,该集合中每个Map<String, ?>对象生成一个列表项。
resource:界面布局文件的ID,对应的布局文件作为列表项的组件。
from:是一个String[]类型的参数,该参数也就是data中的Map<String, ?>对象中哪些key对应的value来生成列表项。
to:该参数是一个int[]类型的参数,该参数决定填充哪些组件。
看过源码之后我们可以看到SimpleAdapter
继承了Adapter
之后实现了覆写了getCount、getItem、getItemId、getView和getDropDownView,其中getView和getDropDownView都调用了createViewFromResource方法,下面是createViewFromResource的源码:
private View createViewFromResource(LayoutInflater inflater, int position, View convertView,
ViewGroup parent, int resource) {
View v;
if (convertView == null) {
v = inflater.inflate(resource, parent, false);
} else {
v = convertView;
}
bindView(position, v);
return v;
}
createViewFromResource
方法是SimpleAdapter
接口新增的方法,在createViewFromReso