首页 > 代码库 > 22读取联系人
22读取联系人
在模拟器中添加几个联系人,在data/data/下导出数据库,如下:
打开。
关心的表有:raw_contact,data,mimetypes,计三张表。
首先得到内容解析器,得到内容解析器之后,既可以使用查询的方法了,查询需要传入URI,查看源代码看下raw_contacts的路径。
resolver.query(uri, new String[]{"contact_id"}, selection, selectionArgs, sortOrder);
query的第二个参数对应于raw_contacts这张表,我们只关心联系人的id:
其他参数全部传入null。查询的结果返回的为cursor,对cursor进行moveToNext循环得到contact_id:
String contact_id = cursor.getString(0);根据得到的contact_id,查询对应data表中的数据。
Cursor dataCursor = resolver.query(uriData, new String[]{"data1"}, "contact_id=?", new String[]{contact_id}, null);
将最后的数据存入MAP中,将map添加到list中,返回list。
主界面的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="${relativePackage}.${activityClass}" > <ListView android:id="@+id/contact" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" android:cacheColorHint="#00000000" android:descendantFocusability="afterDescendants" android:divider="#cccccc" android:dividerHeight="1px" android:fastScrollEnabled="false" /> </RelativeLayout>
每个listitem的布局:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/iv_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src=http://www.mamicode.com/"@drawable/default_avatar">逻辑代码:
package com.dy.ustc.readcontact; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.content.ContentResolver; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.widget.ImageView; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; public class MainActivity extends Activity { private ListView contact; private ImageView iv_image; private TextView name; private TextView phone; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); contact = (ListView) findViewById(R.id.contact); List<Map<String, String>> data = http://www.mamicode.com/getContactInfo();>
运行得到下面的结果:
22读取联系人
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。