博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读取联系人
阅读量:1981 次
发布时间:2019-04-27

本文共 1769 字,大约阅读时间需要 5 分钟。

//读取联系人private ListView lvList;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lvList = (ListView) findViewById(R.id.lv_list);ArrayList
> readContact = readContact();// System.out.println(readContact);lvList.setAdapter(new SimpleAdapter(this, readContact,R.layout.contact_list_item, new String[] { "name", "phone" },new int[] { R.id.tv_name, R.id.tv_phone }));}private ArrayList
> readContact() {// 首先,从raw_contacts中读取联系人的id("contact_id")// 其次,根据contact_id从data表中查询出相应的电话号码和联系人名称// 然后,根据mimetype来区分哪个是联系人,哪个是电话号码Uri rawContactUri = Uri.parse("content://com.android.contacts/raw_contacts");Uri dataUri = Uri.parse("content://com.android.contacts/data");ArrayList
> list = new ArrayList
>();// 从raw_contacts中读取联系人的id("contact_id")Cursor rawContactsCursor = getContentResolver().query(rawContactUri,new String[] { "contact_id" }, null, null, null);if (rawContactsCursor != null) {while (rawContactsCursor.moveToNext()) {String contactId = rawContactsCursor.getString(0);// 根据contact_id从data表中查询出相应的电话号码和联系人名称,实际上查询的是视图view_dataCursor dataCursor = getContentResolver().query(dataUri,new String[] { "data1", "mimetype" }, "contact_id=?",new String[] { contactId }, null);if (dataCursor != null) {HashMap
map = new HashMap
();while (dataCursor.moveToNext()) {String data1 = dataCursor.getString(0);String mimetype = dataCursor.getString(1);System.out.println(contactId + ";" + data1 + ";"+ mimetype);if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {map.put("phone", data1);} else if ("vnd.android.cursor.item/name".equals(mimetype)) {map.put("name", data1);}}list.add(map);dataCursor.close();}}rawContactsCursor.close();}return list;}

转载地址:http://qphpf.baihongyu.com/

你可能感兴趣的文章
synchronized和CAS锁的区别【图文教程】
查看>>
【java】属性别名:@JsonProperty和@JSONField的区别?【图文教程】
查看>>
配置nginx只允许域名访问,禁止ip访问【图文教程】
查看>>
Java代理【图文教程】_第1章_静态代理
查看>>
Java代理【图文教程】_第2章_jdk动态代理
查看>>
AOP面向切面编程【图文教程】_第1章
查看>>
AOP面向切面编程【图文教程】_第2章
查看>>
二叉树之前序、中序、后序和层次遍历【图文教程】
查看>>
【java】class内部模块(静态方法,静态块,静态变量,方法块等)执行顺序【图文教程】
查看>>
java类的构成
查看>>
创建安装linux:centOS
查看>>
Xshell连接CentOS及安装hadoop的准备
查看>>
在linux上配置jdk和hadoop
查看>>
HDFS配置及常见命令
查看>>
xshell连接linux速度很慢或者连接一段时间后会自动断
查看>>
Hadoop Windows插件配置
查看>>
存储 HDFS内部运行原理
查看>>
二丶存储+分析处理信息MapReduce内部原理
查看>>
static代码块设置全局变量和eclipse java配好HDFS类对HDFS的操作
查看>>
互联网行业为何缺少web前端工程师?
查看>>