ResourceCursorAdapter 继承于CursorAdapter,它包含LayoutInflater对象,可以把xml转化成view。成员函数newView和 newDropDownView,根据构造函数初始化时传入或是setViewResource设置的资源id,产生对应的view并返回。
CursorAdapter
CursorAdapter的数据是与Cursor绑定的。它提供两个抽象函数newView和bindView给派生类特制化:newView生成自定 义的View,bindView为自定义View绑定数据。所以我们继承CursorAdapter时,只需要实现这两个函数即可。
public View getView(int position, View convertView, ViewGroup parent) {
View v;
if (convertView == null) {
v = newView(mContext, mCursor, parent);
} else {
v = convertView;
}
bindView(v, mContext, mCursor);
return v;
}
CursorAdapter还可以通过changeCursor更换cursor,实现显示内容的更新。
BaseAdapter
BaseAdapter,除了接口的定义外,唯一实现的功能就是对数据监听及监听事件的回调。所以如果直接从BaseAdapter继承,则需要自己处理细节。
结构
继承关系
public abstract class ResourceCursorAdapter extends CursorAdapter
java.lang.Object
android.widget.BaseAdapter
android.widget.CursorAdapter
android.widget.ResourceCursorAdapter
子类及间接子类
直接子类
SimpleCursorAdapter
类概述
这是一个简单的适配器,通过指定一个定义了视图UI的XML文件来创建视图。构造函数
public ResourceCursorAdapter(Context context, int layout, Cursor c)
构造函数
参数Context 与ListView相关的正在运行的 SimpleListItemFactory上下文
layout 一个定义了列表项视图的布局文件资源ID,这个布局同时定义列表 项视图和下拉视图,直到你重写它们。
c 获取数据的游标
public ResourceCursorAdapter(Context context,int layout, Cursor c, boolean autoRequery)构造函数
参数
Context 与ListView相关的正在运行的 SimpleListItemFactory上下文
layout 一个定义了列表项视图的布局文件资源ID,这个布局同时定义列表 项视图和下拉视图,直到你重写它们。
c 获取数据的游标
autoRequery 如果此参数为true,当适配器的数据发生变化的时,适配器会调 用游标的requery()方法,使最新的数据始终显示。
公共方法
public View newDropDownView(Context context, Cursor cursor, ViewGroup parent)
生成一个新的下拉视图来控制游标指向的数据
参数
context 应用程序全局信息接口(应用上下文)
cursor 获取数据的游标,它已经移动到正确的位置
parent 与新视图相关联的上级视图
返回值
新创建的视图
public View newView(Context context, Cursor cursor, ViewGroup parent)
根据指定的xml文件创建视图
参数
context 应用程序全局信息接口(应用上下文)
cursor 获取数据的游标,它已经移动到正确的位置
parent 与新视图相关联的上级视图
返回值
新创建的视图
参见
newView(android.content.Context, android.database.Cursor, ViewGroup)
public void setDropDownViewResource(int dropDownLayout)
设置下拉视图相应的布局资源
参数
dropDownLayout 用于创建下拉视图的布局资源
public void setViewResource(int layout)
设置列表项视图相应的布局资源
参数
layout 用于创建列表项视图的布局资源