Android中的【Cursor】类总结

来源:互联网 发布:征信大数据是什么意思 编辑:程序博客网 时间:2024/05/17 07:39

最近做一个音乐播放器,不断的用到cursor以及adapter去填充listview,以前只是用的多,知道咋用,没有仔细的深入去学习,今天特意学习了一下,写一点总结,方便自己和大家理解。当然是参考了许多大牛的博客的,这里贴上地址:

http://www.cnblogs.com/TerryBlog/archive/2010/07/05/1771459.html

http://hi.baidu.com/quding0308/blog/item/4623237568d6b100b151b9f4.html.

Cursor是把查询到的结果集封装在一个Cursor对象当中。

cursor就像是结果集上的一个游标,可以向前向后移动。

取出Cursor中的数据一般是用:

while(cursor.moveToNext())

{  

// 取值

}

很多时候,不要忘记 moveToFirst(),一般都是从第一行开始取值;

移动到需要的行的时候,根据下标来取出当前的行中的对应字段的值,

在使用cursor的时候一定要注意一下问题:

  • Cursor 是每行的集合。
  • 使用 moveToFirst() 定位第一行。
  • 你必须知道每一列的名称。
  • 你必须知道每一列的数据类型。
  • Cursor 是一个随机的数据源。
  • 所有的数据都是通过下标取得。

很多时候可以使用startManagingCursor()这个方法来管理cursor,就不用自己再去关闭(但是觉得这么轻松就能管理Cursor可能会出现一些想不到的问题,但是目前来说我基本都是用这个方法来管理cursor,测试什么的都没有出现问题)。

Cursor中的方法:



在Android 查询数据是通过Cursor 类来实现的。当我们使用 SQLiteDatabase.query()方法时,就会得到Cursor对象, Cursor所指向的就是每一条数据。结合ADO.net 的知识可能好理解一点。

Cursor 位于 android.database.Cursor类,可见出它的设计是基于数据库服务产生的。

另外,还有几个己知的子类,分别为:

  • AbstractCursor
  • AbstractWindowedCursor
  •  CrossProcessCursor
  •  CursorWrapper
  •  MatrixCursor
  •  MergeCursor
  •  MockCursor
  • SQLiteCursor



原创粉丝点击