您的位置:首页 > 其它

系统联系人

2016-05-28 10:18 176 查看
package com.example.day_08_contacts;

import java.util.ArrayList;

import java.util.List;

import android.app.Activity;

import android.content.ContentResolver;

import android.database.Cursor;

import android.net.Uri;

import android.os.Bundle;

import android.view.View;

public class MainActivity extends Activity {

// 系统联系人基本信息对应的uri

public String raw_contacts = "content://com.android.contacts/raw_contacts";

//系统联系人详细信息

public String data = "content://com.android.contacts/data";

private List<User> list;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

// 查询练习人

public void select(View v) {

list = new ArrayList<User>();

// 内容解析者

ContentResolver contentResolver = getContentResolver();

// 查询每个联系人对应的_id

Cursor cursor_id = contentResolver.query(Uri.parse(raw_contacts), new String[] { "_id" },

null, null, null);

while (cursor_id.moveToNext()) {

//while循环取出_id

String id = cursor_id.getString(cursor_id.getColumnIndex("_id"));

// System.out.println(id);

//通过_id查询系统联系人详细信息,正常逻辑是查询mimetype_id列,在通过查询到的mimetype_id去mimetypes里查询该id对应mimetype值是多少

//但是谷歌工程师已经将mimetype直接在源码里查询出来了,所以查询mimetype就能查到mimetype的值

Cursor data_cursor = contentResolver.query(Uri.parse(data), new String[]{"mimetype","data1"},

"raw_contact_id = ? ", new String[]{id}, null);

// Cursor data_cursor = contentResolver.query(Uri.parse(data), null,

// null, null, null);

// String[] columnNames = data_cursor.getColumnNames();

// for(String name:columnNames){

// System.out.println(name);

// }

while (data_cursor.moveToNext()) {

User user=new User();

//

String data1 = data_cursor.getString(data_cursor.getColumnIndex("data1"));

String mimetype = data_cursor.getString(data_cursor.getColumnIndex("mimetype"));

System.out.println(data1+"==="+mimetype);

// 04-14 04:23:48.777: I/System.out(3138): 1

// 388-888-8888===vnd.android.cursor.item/phone_v2

// 04-14 04:23:48.777: I/System.out(3138):

// Zhncccccccccc===vnd.android.cursor.item/postal-address_v2

// 04-14 04:23:48.777: I/System.out(3138):

// 8888@.163.comc===vnd.android.cursor.item/email_v2

// 04-14 04:23:48.777: I/System.out(3138):

// 侯江涛===vnd.android.cursor.item/name

if("vnd.android.cursor.item/phone_v2".equals(mimetype)){

user.phone=
data1;

}else if("vnd.android.cursor.item/postal-address_v2".equals(mimetype)){

user.address=data1;

}

list.add(user);

}

System.out.println("--------------------------------------------------------------------");

}

}

}

=====================================================================

/**

*

*/

package com.example.day_08_contacts;

import java.util.List;

import android.content.Context;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.TextView;

/**

* @author WJL

*

*/

public class MyAdapter extends BaseAdapter {

Context context;List<User> list;

public MyAdapter(Context context,List<User> list){

this.context=context;

this.list=list;

}

@Override

public int getCount() {

return list.size();

}

@Override

public Object getItem(int position) {

return null;

}

@Override

public long getItemId(int position) {

return 0;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

View view = View.inflate(context, R.layout.item, null);

TextView address=
(TextView) view.findViewById(R.id.address);

TextView name=
(TextView) view.findViewById(R.id.name);

TextView phone=
(TextView) view.findViewById(R.id.phone);

TextView email=
(TextView) view.findViewById(R.id.email);

address.setText(list.get(position).address);

name.setText(list.get(position).name);

phone.setText(list.get(position).phone);

email.setText(list.get(position).email);

return view;

}

}

==============================================

/**

*

*/

package com.example.day_08_contacts;

/**

* @author WJL

*

*/

public class User {

public String phone;

public String address;

public String email;

public String name;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: