5分钟轻松解决Android数据库访问,Cursor类的基础使用

原创 2017年07月14日 15:28:56

相比于MySql等数据库,SqLite有它自己的工具Cursor,一次获取一行数据(在数据库中,一行包含了一个主键约束的索引的全部内容)。

Cursor就像高中物理课上的游标卡尺

使用游标来读数据库一般分两步:(就像在游标卡尺上读数)

1.横向的获取列名所对应的位置(储存在Cursor中的位置),getColumnIndex方法

2.通过得到的位置,getString(index) or getInt(index)

3.也可以做循环输出
while (cursor.moveNex()t){
//move方法 返回一个布尔值,当到达最后一行时,返回false
}

下面结合的例子Cursor与RecyclerLayout的结合使用,大部分代码无难度,主要是对RecyclerView的适配器不熟悉,造成加载数据的部分花了很多coding时间。

首先是cursor中数据的读取

 protected void bind(int position){
           if(!cursor.moveToPosition(position))
               return;
               //若选中位置没有数据,返回,其实还是一个安全保护,防止程序意外崩溃
               int index;
               index=cursor.getColumnIndex(WaitlistContract.WaitlistEntry.COLUMN_GUEST_NAME);
               String guestName=cursor.getString(index);
               index=cursor.getColumnIndex(WaitlistContract.WaitlistEntry.COLUMN_TIMESTAMP);
               String time=cursor.getString(index);
               nameTextView.setText(time);
               partySizeTextView.setText(guestName);
        }

其中妙处在于,RecyclerView适配器的position刚好和cursor中的moveToPosition完美的结合起来了,不得不赞叹Google工程师的智慧。

 @Override
    public GuestViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
       //获取填充器
        LayoutInflater inflater = LayoutInflater.from(mContext);
        View view = inflater.inflate(R.layout.guest_list_item, parent, false);
        return new GuestViewHolder(view);
    }

    @Override
    public void onBindViewHolder(GuestViewHolder holder, int position) {
    //holder是ViewHolder实例
          holder.bind(position);
    }



    @Override
    public int getItemCount() {
        return cursor.getCount();
    }
版权声明:转载请注明出处

Android数据查询之Cursor

学过编程的朋友应该多少都接触过数据库,对数据库的CRUD相信也不会陌生,今天讲一讲安卓SDK为我们提供的Cursor接口。 当Android程序需要进行数据检索操作时,需要保存全部的查询结果,保存查询...
  • u010640023
  • u010640023
  • 2014年03月06日 22:27
  • 1772

Android 中查询数据库时Cursor类的使用

在做一个获取天气的DEMO,做的过程中,需要从数据库中读取数据,在此过程中使用了Cursor,就又在网上查阅了前辈们的问题以及API,又重新学习了下,在此做些记录,供自己以后温故而知新,能帮到其他童鞋...
  • Darry_R
  • Darry_R
  • 2017年12月19日 19:56
  • 113

Android-使用ListView把SQLite中的数据显示至屏幕

结果图: 步骤: 1.向数据库中插入数据 2.从数据库中取出数据放在ArrayList中; 3.将ArrayList中的数据显示在ListView中; 布局文件: ...
  • u014657752
  • u014657752
  • 2015年08月15日 15:33
  • 5013

Android中cursor类的使用

http://blog.csdn.net/xinqiqi123/article/details/6674215 android中从数据库中查出来的数据一般都存在cursor中即:Cursor...
  • baohanqing
  • baohanqing
  • 2014年03月30日 15:21
  • 1356

Android Cursor类的了解和使用

SQLite数据库中的Cursor是每一行的集合 moveTOFirst();可将Cursor定位到第一行 想要获取相应数据,必须知道每一列的名称和每一列的数据类型 方法详解 ·clo...
  • Yours2
  • Yours2
  • 2016年07月30日 17:14
  • 186

ListView通过CursorAdapter显示数据库内容

继续上一个例子,结合ListView中对SQLite进行操作。 通过CursorAdapter在ListView中的数据呈现 在上一个例子中,我们可以对SQLite中的数据库进行增删改查,...
  • zd394071264
  • zd394071264
  • 2013年06月10日 12:53
  • 14512

Android从数据库中获取所有的文件

我就不多说什么了,直接贴我今天写的代码,注释什么的也不必,我的代码,浅显易懂public class ScanSystemFile { /** * 纯文本 */ pu...
  • badobad
  • badobad
  • 2016年06月02日 21:50
  • 1843

[android基础]Cursor类的使用

1、 CursorAdapter     继承于BaseAdapter是个虚类,它为cursor和ListView提供了连接的桥梁     直接子类只有ResourceCursorAd...
  • SANDYCLAIRE
  • SANDYCLAIRE
  • 2017年02月03日 19:42
  • 189

JAVA中类Cursor的定义

JAVA中类Cursor的定义 分类: Java 2010-07-13 11:39 4131人阅读 评论(0) 收藏 举报 javaobjectstring虚拟机except...
  • songjunyan
  • songjunyan
  • 2014年09月23日 15:08
  • 673

Android 中查询数据库时Cursor类的使用

在做一个
  • jing110fei
  • jing110fei
  • 2014年08月11日 13:27
  • 6361
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:5分钟轻松解决Android数据库访问,Cursor类的基础使用
举报原因:
原因补充:

(最多只允许输入30个字)