android获取系统通讯录

  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 }

 

posted @ 2016-07-21 10:26  点滴之水  阅读(483)  评论(0编辑  收藏  举报