最近做一个音乐播放器,不断的用到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 是一个随机的数据源。
- 所有的数据都是通过下标取得。
在Android 查询数据是通过Cursor 类来实现的。当我们使用 SQLiteDatabase.query()方法时,就会得到Cursor对象, Cursor所指向的就是每一条数据。结合ADO.net 的知识可能好理解一点。
Cursor 位于 android.database.Cursor类,可见出它的设计是基于数据库服务产生的。
另外,还有几个己知的子类,分别为:
- AbstractCursor
- AbstractWindowedCursor
- CrossProcessCursor
- CursorWrapper
- MatrixCursor
- MergeCursor
- MockCursor
- SQLiteCursor