1 package com.example.administrator.yunphone.View;
2
3 import android.app.Fragment;
4 import android.database.Cursor;
5 import android.nfc.Tag;
6 import android.os.Bundle;
7 import android.provider.ContactsContract;
8 import android.support.annotation.Nullable;
9 import android.util.Log;
10 import android.view.LayoutInflater;
11 import android.view.View;
12 import android.view.ViewGroup;
13 import android.widget.AdapterView;
14 import android.widget.ListView;
15 import android.widget.SimpleAdapter;
16 import android.widget.Toast;
17
18 import com.example.administrator.yunphone.R;
19
20 import java.util.ArrayList;
21 import java.util.HashMap;
22 import java.util.List;
23 import java.util.Map;
24
25 /**
26 * Created by Administrator on 2016/7/13.
27 */
28 public class ContactsFragment extends Fragment {
29 private View mView;
30 private List<Map<String, Object>> mList;
31 private ListView mListview;
32
33 private String TAG = "log";
34 private List nameList;
35 private List phoneList;
36
37
38 @Nullable
39 @Override
40 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
41 mView = inflater.inflate(R.layout.fragment_contacts_layout, null);
42 getContactsPhone();
43 return mView;
44 }
45 /*
46 *获取系统联系人
47 */
48 public void getContactsPhone() {
49 nameList=new ArrayList();
50 phoneList=new ArrayList();
51
52 Cursor cursor = getActivity().getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
53 null, null, null, null);
54 int contactIdIndex = 0;
55 int nameIndex = 0;
56
57 if (cursor.getCount() > 0) {
58 contactIdIndex = cursor.getColumnIndex(ContactsContract.Contacts._ID);
59 nameIndex = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
60 }
61 while (cursor.moveToNext()) {
62 String contactId = cursor.getString(contactIdIndex);
63 String name = cursor.getString(nameIndex);
64 Log.i(TAG, contactId);
65 Log.i(TAG, name);
66 nameList.add(name);
67 /*
68 * 查找该联系人的phone信息
69 */
70 Cursor phones = getActivity().getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
71 null,
72 ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId,
73 null, null);
74 int phoneIndex = 0;
75 if (phones.getCount() > 0) {
76 phoneIndex = phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
77 }
78 while (phones.moveToNext()) {
79 String phoneNumber = phones.getString(phoneIndex);
80 Log.i(TAG, phoneNumber);
81 phoneList.add(phoneNumber);
82 }
83
84 }
85 //获取到系统联系人之后数据显示
86 setListView();
87 }
88
89 /*
90 *设置listView显示的内容
91 */
92 private void setListView() {
93 mListview = (ListView) mView.findViewById(R.id.list);
94 mList = new ArrayList();
95 for (int i = 0; i < nameList.size(); i++) {
96 Map map = new HashMap();
97 map.put("name", nameList.get(i));
98 map.put("num", phoneList.get(i));
99 mList.add(map);
100 }
101 SimpleAdapter simpleAdapter = new SimpleAdapter(getActivity(), mList, R.layout.contacts_item, new String[]{"name", "num"}, new int[]{R.id.name, R.id.phone});
102 mListview.setAdapter(simpleAdapter);
103 mListview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
104 @Override
105 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
106 Toast.makeText(getActivity(), "进入联系人详情", Toast.LENGTH_SHORT).show();
107 }
108 });
109 }
110
111 }