调用系统界面挑选联系人

实现效果:

 

我们知道,在应用中经常需要获取某一个联系人的姓名和电话号码,并返回。有两种方式可以实现,一种是比较简单的,也就是调用系统的选择联系人的界面,通过startActivityForResult来调用,在onActivityResult中处理返回的结果。

 

下面我们看看具体是如何实现的:

 

private static final int CONTACT_PICKER_RESULT = 0; 
 

 

/**
     * launch System contact picker Activity
     * 
     * 启动系统的挑选联系人的Activity
     * */
    private void launchContactPicker()
    {
    	Intent i = new Intent(Intent.ACTION_PICK);
        i.setType(Phone.CONTENT_TYPE);
        startActivityForResult(i, CONTACT_PICKER_RESULT);
    }

 

@Override
    protected void onActivityResult (int requestCode, int resultCode, Intent data) 
    {
        super.onActivityResult(requestCode, resultCode, data);
        
        if(resultCode == RESULT_OK)
        {
        	switch (requestCode) 
        	{
        	//handle the result...
        	//处理返回的结果
            case CONTACT_PICKER_RESULT:
                if (data == null)
                {
                    return;
                }
                Uri uri = data.getData();
                Cursor cursor = getContentResolver().query(uri, null, null, null, null);
                cursor.moveToFirst();
                
                String name = cursor.getString(cursor.getColumnIndexOrThrow(Phone.DISPLAY_NAME));
                String number = cursor.getString(cursor.getColumnIndexOrThrow(Phone.NUMBER));
                
                etShowContact.setText(name + number);
                break;
        	}
        
        }
    } 
 

但是这样做有一个问题。一次只能选择一个联系人。那么如何实现可以同时选择多个联系人呢?目前我知道的方法只有这样做:自己获取所有联系人的信息,然后从这些信息中实现多选。下次我会展示一个我的做法给大家看看。

 

 

Demo下载地址:https://github.com/michaelye/DemoChooseContactBySystem

 

 

如果发现问题欢迎指正。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值