返回介绍

CursorAdapter

发布于 2025-03-09 17:00:27 字数 7499 浏览 0 评论 0 收藏 0

CursorAdapter

翻译时间:2011-1-20

版本:Android 2.3 r1

结构

继承关系

public abstract class CusrorAdapter extends BaseAdpater implements Filterable

java.lang.Object

android.widget.BaseAdapter

android.widget.CursorAdapter

子类及间接子类

直接子类

ResourceCursorAdapter

间接子类

SimpleCursorAdapter

类概述

通过该类可用 Cursor 的方式访问数据库,并将查询出来的数据展示到列表视图( ListView ) 部件上。其中游标携带的结果集中必须有列名为“_id”的列,否则这个类无法工作。

构造函数

public CusorAdapter (Context context,Cursor c)

构造函数。每当数据库的数据发生改变时,适配器将调用 requery() 重新查询以显示最新的数据。

参数

context 应用程序上下文。

c 用来获取数据的游标(Coursor)

public CusorAdapter (Context context,Cursor c, boolean autoRequery)

构造函数。每当数据库的数据发生改变时,适配器将调用 requery() 重新查询以显示最新的数据。

参数

context 应用程序上下文。

c 用来获取数据的 Coursor

autoRequry 设置为 true 时,每当数据库的数据发生改变时,适配器将调用 requery() 重新查询以显示最新的数据。

公共方法

public abstract void bindView (View view, Context context, Cursor cursor)

重用一个已有的 view,使其显示当前 cursor 所指向的数据。

参数

view 已存在的视图,返回之前 newView 方法创建的视图。

context 应用程序上下文

cursor 用于获取数据的 Coursor。Coursor 已经移到正确的位置。

public void changeCursor (Cursor cursor)

更改底层的游标为新传入的游标。如果游标已经存在则先关闭这个已存在的游标。

参数

cursor 新 Cursor。

public CharSequence convertToString (Cursor cursor)

将 cursor 转换成 CharSequence。子类应该重写这个方法并转换它们的结果。这个方法的默认实现是:当 cursor 为空时返回一个空串,否则直接返回调用 cursor 的 toString() 方法。

参数

cursor 将 cursor 转换成 CharSequence 对象。

返回值

返回表示 CharSequence 的值。

public int getCount ()

(译者注:获取适配器中数据的总行数。)

参见

getCount()

public Cursor getCursor ()

返回当前适配器绑定的 Cursor 对象。

返回值

Cursor 对象。

public View getDropDownView (int position, View convertView, ViewGroup parent)

获取下拉列表选项指定位置的视图对象

参数

position 视图(View) 对象的行索引。

convertView 重用已有的视图(View) 对象。备注:在使用前你应该检查 一下这个视图对象是否非空并且这个对象的类型是否合适 。由此引伸出,如果该对象不能被转换并显示正确的数据, 这个方法内部就会重新创建一个合适的视图(View) 对象。

parent 不管是转换后的还是重新创建的视图(View) 对象,始终都会依附于 parent 对象上。

返回值

返回视图(View) 对象,该对象显示数据集指定位置上的数据。

public Filter getFilter ()

返回一个可以通过一种过滤模式来约束数据的过滤器。

这个方法通常在 Adapter 类实现。

返回值

一个用于约束数据的过滤器

public FilterQueryProvider getFilterQueryProvider ()

返回一个提供过滤的查询过滤器。若过滤器为 null,则不再过滤。

返回值

返回当前过滤器对象,如果不存在返回 null。

参见

setFilterQueryProvider(android.widget.FilterQueryProvider)

runQueryOnBackgroundThread(CharSequence)

public Object getItem (int position)

(译者注:获取数据集中指定位置上的数据项目)

参见

getItem(int)

public long getItemId (int position)

(译者注:获取数据集中的指定位置上的行 id。)

参见

getItemId(int)

public View getView (int position, View convertView, ViewGroup parent)

(译者注:获取一个显示数据集中指定位置数据段视图。可以手动创建视图,或者从 XML 设计文件填充。当视图从 XML 设计文件填充时,父视图(如 GridView,ListView 等)将接受默认的设计参数,除非使用 inflate(int, android.view.ViewGroup, boolean) 去指定一个根视图和防止依附于根视图。)

参见

getView(int, View, ViewGroup)

public boolean hasStableIds ()

无论项 ID 代表的基础数据的是否变化都保持不变。

返回值

如果为 TRUE,意味着相同的 ID 始终引用相同的对象。

public View newDropDownView (Context context, Cursor cursor, ViewGroup parent)

生成一个新的下拉视图来保存 cursor 指向的数据

参数

context 应用程序全局信息接口(应用上下文)

cursor 获取数据的游标,它已经移动到正确的位置

parent 与新视图相关联的上级视图

返回值

新创建的视图。

public abstract View newView (Context context, Cursor cursor, ViewGroup parent)

新建一个视图来保存 cursor 指向的数据

参数

context 应用程序全局信息接口(应用上下文)

cursor 获取数据的游标,它已经移动到正确的位置

parent 与新视图相关联的上级视图

返回值

新创建的视图。

public Cursor runQueryOnBackgroundThread (CharSequence constraint)

执行含指定约束的查询。此查询依赖于适配器的过滤器。查询是由 FilterQueryProvider 提供。如果没有指定 FilterQueryProvider,当前 cursor 不过滤只返回。该方法会通过 changeCursor(Cursor) 方法返回一个 Cursor 对象,并且关闭掉先前的 Cursor 对象。这个方法始终在后台线程执行,而不是在应用程序的主线程(或是 UI 线程)中运行。规定:当参数 constraint 为 null 或为空时,该方法返回原始结果。

参数

constraint 该查询必须被过滤的约束。

返回值

返回含有新的查询结果的 Cursor。

参考

getFilter()

getFilterQueryProvider()

setFilterQueryProvider(android.widget.FilterQueryProvider)

public void setFilterQueryProvider (FilterQueryProvider filterQueryProvider)

设置一个过滤器,用来过滤当前的 Cursor 对象。当这个适配器需要进行过滤操作时, runQuery(CharSequence)方法被调用

参数

filterQueryProvider 过滤器对象,设置为 null 时,就相当于移除了该过滤器。

参考

getFilterQueryProvider()

runQueryOnBackgroundThread(CharSequence)

受保护方法

protected void init (Context context, Cursor c, boolean autoRequery)

(译者注:供构造函数使用初始化相关参数)

protected void onContentChanged ()

当 cursor 对象上的 ContentObserver 接收到改变的通知时就会调用该方法,其默认实现提供了自动重新查询方式,但可以被子类重写。

补充

文章精选

android CursorAdapter 的监听事件

实现基于 Android 的英文电子词典

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文