读取电话联系人

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();
    }
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值