Cursor的moveToFirst和moveToNext .

 原来查询得到的cursor是指向第一条记录之前的
分析一下代码: public void printContacts() { //生成ContentResolver对象 ContentResolver contentResolver = getContentResolver(); // 获得所有的联系人 /*Cursor cursor = contentResolver.query( ContactsContract.Contacts.CONTENT_URI, null, null, null, null); */ //这段代码上面代码是等价的,使用两种方式获得联系人的Uri Cursor cursor = contentResolver.query(Uri.parse("content://com.android.contacts/contacts"),null,null,null,null); // 循环遍历 if (cursor.moveToFirst()) { int idColumn = cursor.getColumnIndex(ContactsContract.Contacts._ID); int displayNameColumn = cursor .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); do { // 获得联系人的ID String contactId = cursor.getString(idColumn); // 获得联系人姓名 String displayName = cursor.getString(displayNameColumn); //使用Toast技术显示获得的联系人信息 Toast.makeText(ContentProviderDemo.this, "联系人姓名:" + displayName,Toast.LENGTH_LONG).show(); // 查看联系人有多少个号码,如果没有号码,返回0 int phoneCount = cursor .getInt(cursor .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); if (phoneCount > 0) { // 获得联系人的电话号码列表 Cursor phoneCursor = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId, null, null); if(phoneCursor.moveToFirst()) { do { //遍历所有的联系人下面所有的电话号码 String phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); //使用Toast技术显示获得的号码 Toast.makeText(ContentProviderDemo.this, "联系人电话:"+phoneNumber,Toast.LENGTH_LONG).show(); }while(phoneCursor.moveToNext()); } } } while (cursor.moveToNext()); } } }
最新发布
07-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值