异步查询数据库,CursorAdapter
来源:互联网 发布:逐点比较圆弧插补vb 编辑:程序博客网 时间:2024/05/22 15:16
异步查询数据库
写一个类如CommonAsyncQuery继承AsyncQueryHandler,在该类中实现要实现的方法,可以实现的方法有:
假如实现的是onQueryComplete(int token, Object cookie, Cursor cursor)方法时,当调用startQuery开始异步查询数据时,
CommonAsyncQuery asyncQuery = new CommonAsyncQuery(getContentResolver());asyncQuery.startQuery(token, cookie, uri, projection, selection, selectionArgs, orderBy);
查询完毕查询出来的游标结果集cursor,token和cookie都会传递到onQueryComplete方法,并执行此方法。此方法是在主线程中执行的,所以可以在该方法中更改数据。
由于cookie是Object类型的,所以我们直接用一个Adapter,传递过来之后就可以直接更新数据了。
另外,用CursorAdapter异步查询数据库时,要查询的列必须有名为_id的列。
android.widget.CursorAdapter
刷新数据用:
adapter.changeCursor(cursor);
类似于BaseAdapter中的notifyDataSetChange()方法。
传递前,写一个类继承CursorAdapter,实现带Context context, Cursor c两个参数的构造方法,实现未实现的方法:newView和bindView方法。
其中newView是创建一个View,bindView是绑定数据。
给ListView设置Adapter时,因为是创建Adapter的实例,此时的cursor为null,如:
mAdapter = new ConversationAdapter(this , null);
当执行adapter.changeCursor();方法时,会执行该adapter中的newView和bindView方法。并把cursor传递给bindView方法。以便在bindView方法中绑定数据。
在newView方法中也可以用ViewHolder进行优化,该方法返回的View对象会传递给bindView方法,同样在newView方法中可以用view.setTag(holder)方法设置tag,在bindView方法中用view.getTag();方法来获得holder信息。
- 异步查询数据库,CursorAdapter
- C# 如何异步查询数据库
- Mangos之异步数据库查询
- 数据库的异步查询-----AsyncQueryHandler
- CursorAdapter
- CursorAdapter
- CursorAdapter
- cursoradapter
- CursorAdapter
- CursorAdapter
- cursorAdapter
- CursorAdapter
- CursorAdapter
- CursorAdapter
- CursorAdapter
- 安卓:将数据库中的数据查询出来用adapter(SimpleAdapter,SimpleCursorAdapter,自定义适配器CursorAdapter)绑定到listview上
- ListView通过CursorAdapter显示数据库内容
- ListView通过CursorAdapter显示数据库内容
- 修改SVN项目日志
- 使用handler时的warning:ThisHandlerclassshouldbestaticorleaksmightoccur
- 可是后来我们都把对方弄丢了
- Debian/Ubuntu Linux:使用Hostapd搭建无线访问点(WAP)
- [hdoj]2006
- 异步查询数据库,CursorAdapter
- linux平台中socket通信程序的编写
- 黑马程序员_IOS内存管理学习总结(一)
- 红楼梦诗词全集---留一份吧,太珍贵了!!
- makefile 参数说明
- Android Gradle编译学习日记之二(使用 Gradle 编译 Eclipse,引入依赖资源以及迁移 Android Studio)
- 说一下近况吧
- os.path
- uva 10025 The ? 1 ? 2 ? ... ? n = k problem