`
20386053
  • 浏览: 461899 次
文章分类
社区版块
存档分类
最新评论

Android中cursor类的使用

 
阅读更多

android中从数据库中查出来的数据一般都存在cursor中即:Cursor mCursor = mSQLiteDatabase.query("select * form table", null),说白了就是一个数据集合,具体的说就是每行数据集合,下面是api中对cursor的解释

关于 Cursor,

1,Cursor 是每行的集合。

2,使用 moveToFirst() 定位第一行。

3,Cursor 是一个随机的数据源。

4,所有的数据都是通过下标取得。

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()
    移动光标到上一行

    1 看些这几行代码一般是判断Cursor是否为空,也就是没数据

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

    或者

    if (null != cur ){
          
    }


    其实第二中方法方便,第一种是为了便于理解

    2 通过Cursor 的下标获得数据,下标我的理解是每行行的第几列,下面方法就是获得某行中某列的数据

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

    其中name为列名,首先通过列名称找出在该行中位于第几列,通过列索引找出该行中name字段的值

    3,遍历cursor中每行数据

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


    或者

    do {
    
    
      }while(cur.moveToNext())


    要是不想用上面这2种循环,习惯用for循环,google有方法实现for循环

    for(cur.moveToFirst();!cur.isAfterLast();cur.moveToNext())
    {
        int nameColumn = cur.getColumnIndex(People.NAME);
        int phoneColumn = cur.getColumnIndex(People.NUMBER);
        String name = cur.getString(nameColumn);
        String phoneNumber = cur.getString(phoneColumn);
    }

    isBeforeFirst()

    返回游标是否指向之前第一行的位置

    isAfterLast()

    返回游标是否指向第最后一行的位置

    isClosed()

  • 分享到:
    评论

    相关推荐

      Android cursor的用法

      在 Android 开发中,Cursor 是一个非常重要的类,主要用于处理数据查询结果。它提供了一个简洁的方法来访问数据库查询的结果集,并允许开发者方便地遍历这些结果。对于新手而言,理解 Cursor 的工作原理以及如何正确...

      android 使用 Cursor 访问数据库 生成 ListView 并获取选中项的值

      android 使用 Cursor 访问数据库 生成 ListView 并获取选中项的值

      Android检测Cursor泄漏的原理以及使用方法

      2. 在异步任务或线程中使用Cursor,当任务完成或线程结束,Cursor可能仍然保持活动状态。 3. 将Cursor引用保存在非局部变量中,导致Cursor生命周期超出其应有的范围。 Android检测Cursor泄漏的原理基于Java对象的...

      Android App调试内存泄露之Cursor.zip

      6. **避免匿名内部类引用Cursor**:如果必须在匿名内部类中使用Cursor,可以使用弱引用(WeakReference)来避免阻止Cursor的垃圾回收。 7. **使用工具进行检测**:利用Android Studio的Memory Profiler工具,或者第...

      Android中CursorAdapter的使用

      在这个例子中,我们从Cursor中获取"标题"和"图片"列的数据,并将其显示在TextView和ImageView中。 **4. changeCursor()方法** 当Cursor的数据源发生变化时,如更新、插入或删除记录,可以调用changeCursor()方法来...

      android中sqlite的使用

      在Android开发中,SQLite是一个非常重要的数据存储工具。SQLite是一个轻量级的、关系型...以上就是Android中SQLite的使用相关知识点,通过熟练掌握这些内容,开发者能够高效地在Android应用中实现数据存储和管理。

      Android Studio SQLite数据库使用

      SQLiteOpenHelper和SQLiteDatabase是Android Studio中使用SQLite数据库的核心组件,ContentValue和Cursor是辅助工具。通过使用这些组件和工具,可以轻松地在Android Studio中实现数据库的创建、读写和管理。

      Android中使用SQLite示例

      以下是对Android中使用SQLite进行详细讲解: 1. **SQLite简介** SQLite是一个开源、嵌入式的关系型数据库,支持SQL标准。在Android中,每个应用程序都可以拥有自己的SQLite数据库,并且无需额外的服务器进程。它的...

      Android-Android使用jxl快速导出excel表

      本文将详细探讨如何在Android应用中使用jxl库快速导出Excel表格。 首先,我们需要理解jxl库的基本概念。jxl是一个Java API,它支持Microsoft Excel 97-2004的文件格式(.xls)。通过jxl,我们可以创建新的工作簿、...

      使用android通讯录中的内容提供者实例

      在这个实例中,我们将深入探讨如何使用Android通讯录的内容提供者来查询和添加联系人。 一、Android内容提供者基础 内容提供者是一个实现了ContentProvider类的组件,它负责存储、检索以及更新应用程序的数据。每个...

      android中AutoCompleteTextView使用

      在Android开发中,`AutoCompleteTextView` 是一个非常实用的组件,它提供了自动补全功能,用户在输入时可以接收到下拉列表的建议,提高了输入效率。`MultiAutoCompleteTextView` 是 `AutoCompleteTextView` 的扩展,...

      Android Studio LitePal数据库使用

      下面将详细介绍如何在 Android Studio 中使用 LitePal 数据库。 添加 LitePal 依赖项 在使用 LitePal 之前,需要在项目的 build.gradle 文件中添加 LitePal 的依赖项。打开 Project 视图下的 app 的 build.gradle ...

      Android中ContentResolver的使用说明.pdf

      Android提供了一些预定义的URI常量和辅助类,以便于开发者更加方便地处理URI。 接下来,我们来看看ContentResolver的主要接口及其功能: 1. `insert(Uri url, ContentValues values)`:此方法用于向...

      android之sqlite实现增删改查

      "Android之SQLite实现增删改查"这个标题表明了本文将介绍如何在Android平台中使用SQLite数据库来实现增删改查操作。 描述解释 "这是学习及开发SQlite的一个很好的例子,含有其增删改查的所有功能附有完整的代码可以...

      Cursor的用法.docx

      在Android开发中,`Cursor` 是一个非常重要的概念,它用于从SQLite数据库中检索数据。`Cursor` 类就像一个指针,可以遍历查询结果中的每一行数据。本篇文章将详细介绍如何使用`Cursor`以及在实际代码中的应用。 ...

      在Android中创建和使用数据库

      总之,Android中的SQLite数据库提供了一种有效的方式,用于在本地存储应用程序所需的数据。通过创建一个像DBAdapter这样的辅助类,可以简化数据库操作,并使代码更加整洁和易于维护。了解这些基础知识后,你就可以...

      Android 实现读写U盘文件

      在Android平台上,与U盘进行文件的读写操作并不像在桌面系统中那样直接,因为Android设备通常不直接支持USB主机模式(Host Mode)。然而,借助第三方库如libaums,我们可以实现这一功能。libaums是Android上一个用于...

      android sqlite的使用方法

      以下是关于Android中SQLite的详细使用方法: 1. 创建SQLite数据库 - 首先,创建一个继承自`SQLiteOpenHelper`的类。这个类有两个关键的方法:`onCreate()`和`onUpgrade()`。`onCreate()`方法在数据库首次创建时被...

      Android中下载文件的使用

      Android API Level 9引入了`DownloadManager`类,它是一个系统服务,能够处理后台下载并提供各种高级功能,如网络状况检测、通知、以及自动重新尝试失败的下载。 **使用DownloadManager** 1. 获取DownloadManager...

    Global site tag (gtag.js) - Google Analytics