[android基础]Cursor类的使用



1、 CursorAdapter



    继承于BaseAdapter是个虚类,它为cursor和ListView提供了连接的桥梁

    直接子类只有ResourceCursorAdapter


2、 Cursor是每行的集合

使用moveToFirst()定位第一行

必须知道每一列的名称,每一列的数据类型,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、        
if(cur.moveToFirst() == false){
	
	           //  为空的Cursor
			   
			   return;
	        }



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

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



3、 循环Cursor取出我们需要的数据:

	    while(cur.moveToNext()){
		
		//  光标移动成功
		
		//   把数据取出
		
		//   当cur.moveToNext()为假时将跳出循环,即Cursor数据循环完毕
		}


4、有了以上的方法,可以如此取出数据:

	    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);
		}


5、在Android查询数据是通过Cursor类来实现的。

  当我们使用SQLiteDatabase.query()方法时,就会得到Cursor对象,Cursor所指向的就是每一条数据。
  

  Cursor位于android.database.Cursor类,可见出它的设计是基于数据库服务产生的。


以上整理转自:http://www.2cto.com/kf/201109/103163.html



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值