最近在做一个东西,用到了通讯录,就把通讯录的东西又复习了一遍,在学习的过程中遇到了一个问题,编译器一直报空指针异常,贴上代码讲解:
public void startQuery1() { ContentResolver resolver = getContentResolver(); Uri uri = Uri.parse("content://com.android.contacts/raw_contacts"); Uri dataUri = Uri.parse("content://com.android.contacts/data"); Cursor cursor = resolver.query(uri, null, null, null, null); while (cursor.moveToNext()) { String id = cursor.getString(cursor.getColumnIndex("contact_id")); System.out.println(id); Cursor dataCursor = resolver.query(dataUri, null, null, null, null); while(dataCursor.moveToNext()){ String data1 = dataCursor.getString(dataCursor.getColumnIndex("data1")); String mimetype = dataCursor.getString(dataCursor.getColumnIndex("mimetype")); data1 = data1==null?"wu":data1; System.out.println(data1); System.out.println(mimetype); } dataCursor.close(); } cursor.close(); }
在打印id这一行,一直报空指针异常,就是获取到的id为空,我用模拟器编译的时候发现没问题,我就很奇怪,于是连上手机把手机里面的/data/data/com.android.providers.contacts/databases/contacts2.db(联系人数据都在这个表里面)弄出来,一看,原来我的contact_id是直接从3开始的(我删除过一些联系人导致,而增加联系人的时候id是自动增长的),所以才会一个也没打印直接报错了。于是我加了一个判断,如果是空就不打印,这样就解决了。
然后现在是所有的数据都读出来了,我们要拿到我们想要的数据就要做一个筛选,我们常用的联系人字段在mimetypes表里面,上面已经获取出来了mimetype,
我们通过判断mimetype可以筛选到我们要的数据,这就不多说了。
相关推荐
旨在提供Java连接Access数据库的方法。这是一个简单的通讯录小程序, 只有记录 姓名,手机号码,住址等信息,
Android简易通讯录,代码比较简洁,可供初学者参考,通话和短信功能可自行添加
php简易通讯录php简易通讯录php简易通讯录php简易通讯录php简易通讯录php简易通讯录
使用c++编写的一个简易通讯录工程文件,可以满足基本的增删查改和存储操作
简易的Android通讯录
用asp实现的简易通讯录,能实现通讯的增删改查功能。 里面用了数据库access。 用asp实现的简易通讯录,能实现通讯的增删改查功能。 里面用了数据库access。
本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。 各按钮的功能如下: 查找记录:以姓名为...
本简易通讯录是建立在链表基础上的,可以动态建立通讯录信息,经过建立后的通讯录具有删除、查询功能。
android 简易通讯录,使用sqlite数据库,开发环境idea。
本资源使用Visual2005+SQL server2000完成简单的通讯录的开发,供初学ASP.NET的人学习参考
C++简易通讯录程序代码实现各种通讯录问题
C#简单通讯录,用XML文件保存信息,文件流读写功能。
一个牛人写的简易通讯录0.13(含源码).rar 资料很全 简易通讯录
通讯录通讯录通讯录通讯录通讯录通讯录通讯录通讯录通讯录通讯录通讯录通讯录通讯录通讯录通讯录
基于SQLite开发的简易通讯录 共两个页面:启动页+主页面 主页面实现增删改查、读取系统联系人、拨号等功能 非常非常非常简陋,所有功能都在主页面实现,没有封装类
VB 简易通讯录 VB 简易通讯录 VB 简易通讯录
简单通讯录程序:编程实现简单通讯录程序。通讯者的基本信息包括编号、姓名、性别、年龄、宅电、手机电话等信息。具体实现的管理功能如下: (1) 输入并显示多个通讯者的信息; (2) 可实现通讯者信息的添加; (3...
Android SQLite增删改查基本用法,通讯录实现 知识点包含: ListView控件的基本使用 SQLite数据库增删改查
应用一些查找算法,写出的简单通讯录~是文本文档格式的,复制到编译器里即可。
android简易通讯录--非常适合初学者学习,涉及到SQLite数据库的使用等