美文网首页
Android中的Cursor

Android中的Cursor

作者: 吃茶泡饭丶 | 来源:发表于2018-03-30 23:33 被阅读0次

    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

          本文链接:https://www.haomeiwen.com/subject/ispwcftx.html