package com.example.day6_telephone;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.example.day6_telephone.vo.TelePhone;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class MainActivity extends Activity {
ContentResolver resolver;
//List<TelePhone> phones=new ArrayList<>();
List<Map<String, Object>> list=new ArrayList<>();
ListView lv;
SimpleAdapter adaper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//注意:在清单列表里要设置读取联系人的权限
resolver=getContentResolver();
lv=(ListView) findViewById(R.id.lv);
adaper=new SimpleAdapter(getBaseContext(), list, R.layout.item, new String[]{"name","number","email"}, new int[]{R.id.name,R.id.phone,R.id.email});
lv.setAdapter(adaper);
//获取姓名和id
Cursor cursor=resolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while(cursor.moveToNext()){
int id=cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String name=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
//把手机里读取的联系人的姓名和id赋值给实体类
TelePhone phone=new TelePhone();
phone.setId(id);
phone.setName(name);
Cursor cursor1=resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"= ?", new String[]{String.valueOf(id)}, null);
while(cursor1.moveToNext()){
//把对应id的电话号码得到并赋值
String number=cursor1.getString(cursor1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
phone.setNumber(number);
}
Cursor cursor2=resolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID+"="+id, null, null);
while(cursor2.moveToNext()){
//把对应id的email得到并赋值
String email=cursor2.getString(cursor2.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
phone.setEmail(email);
}
//添加到集合中
// phones.add(phone);
Map<String, Object> map=new HashMap<>();
map.put("name", phone.name);
map.put("number", phone.number);
map.put("email", phone.email);
list.add(map);
adaper.notifyDataSetChanged();
}
}
}