Android中的Cursor

Cursor

光标/游标

获取

SQLiteDataBase db;
Curosr cursor = db.query(参数);

    和
    
Cursor cursor = context.getContentResolver().query(参数);

理解:

Cursor是每行的集合:
每行的集合的意思,是获得的满足条件(就是我们query方法中传入的条件参数)的所有行

如下:SQLite数据库

position |  id  | name | age  | gender
---------|------|------|------| ------|
    0    |   1  | 张三 |  20  |   男
    1    |   2  | 李四 |  21  |   女
    2    |   3  | 王五 |  22  |   男
    3    |   4  | 赵六 |  23  |   女

我要在这个表中找gender为男的,那么获得到的cursor就包含了张三行,王五行

方法

  • close()

    关闭游标,释放资源

  • copyStringToBuffer(int columnIndex, CharArrayBuffer buffer)

    在缓冲区中检索请求的列的文本,将将其存储

  • getColumnCount()

    返回所有列的总数

  • getColumnIndex(String columnName)

    返回指定列的名称,如果不存在返回-1

  • getColumnIndexOrThrow(String columnName)

    从零开始返回指定列名称,如果不存在将抛出IllegalArgumentException 异常。

  • getColumnName(int columnIndex)

    从给定的索引返回列名

  • getColumnNames()

    返回一个字符串数组的列名

  • getCount()

    返回Cursor 中的行数

  • moveToFirst()

    移动光标到第一行

  • moveToLast()

    移动光标到最后一行

  • moveToNext()

    移动光标到下一行

  • moveToPosition(int position)

    移动光标到一个绝对的位置

  • moveToPrevious()

    移动光标到上一行

一段代码

if (cur.moveToFirst() == false)
{
    //为空的Cursor
    return;
}

访问 Cursor 的下标获得其中的数据

int nameColumnIndex = cur.getColumnIndex(People.NAME);
String name = cur.getString(nameColumnIndex);

循环 Cursor 取出需要的数据

while(cur.moveToNext())
{
    //光标移动成功
    //把数据取出
}

End

你可能感兴趣的:(Android中的Cursor)