Android的多个联系人选择器(与所选择的选项,电话号码)(Android Multiple Co

2019-06-24 04:31发布

我需要能够选择在Android的多个联系人。 流程是这样的:

  1. 用户点击这将打开联系人应用程序按钮。
  2. 然而,除了能够选择一个联系人,我需要能够选择多个联系人(在同一个推出的意图)。
  3. 如果联系人有多个电话号码,我需要的用户可以选择他想要选择哪个电话号码。

此功能已经出现在我的三星Android手机(运行2.3姜饼),当我点击的短信应用“联系人”。 参见下图:

Answer 1:

没有建立在这样的方式,所以你需要自己做的大部分工作。 幸运的是,这并不难。

显示

以显示通讯录您可以使用一个ListView与多选选模式,也可以创建自定义适配器,并将其绑定到正规的列表视图。 我不认为有多重选择让你把不是文本的每一行的任何其他列表视图,但你必须深入挖掘,找出。

我用非常类似的(除了多个电话号码的部分)的东西定制适配器方法。 这是很容易做到的,我觉得自定义适配器是从长远来看,真正有用的。

自定义列表视图适配器教程

通过自定义适配器设置,您可以创建的所有信息,包括他们的姓名和电话号码(S)一个人的数据对象。 在您的自定义适配器的getView,你可以决定什么/如何以及在何处,以显示每一条信息。

收集信息

你需要使用ContactContract API来获取信息,为您的联系人。

阅读联系方式

阅读所有的电话号码联系人



Answer 2:

你将不得不写这一切你自己。 您可以使用ContactsContract提供商查询与电话号码的所有联系人,然后选择联系人,你可以查询该联系人的所有电话号码。 你认为合适的可以显示在活动或对话的结果。



Answer 3:

不幸的是这个代码不支持Android的所有版本

我知道这是有点晚,但想分享这个! 我发现了一些不完整的代码中网与它破解我的头后,我终于找到了答案! 基本上你启动选择器,让它的额外返回数据=]

有净所以希望它可以帮助一些灵魂在那里没有完整的答案!

请享用:

    public void pickContact(View v){
    try {
        Intent phonebookIntent = new Intent("intent.action.INTERACTION_TOPMENU");
        phonebookIntent.putExtra("additional", "phone-multi");
        startActivityForResult(phonebookIntent, PICK_CONTACT); 
        // PICK_CONTACT IS JUST AN INT HOLDING SOME NUMBER OF YOUR CHOICE

    } catch (Exception e) {
        e.printStackTrace();
    }
}

public String getData(String contact, int which)
{
    return contact.split(";")[which];
}

public void onActivityResult(int reqCode, int resultCode, Intent data) {
    final int URI = 0;
    final int NUMBER = 1;

    if (RESULT_OK != resultCode) return;
    Bundle contactUri = data.getExtras();
    if (null == contactUri) return;

    ArrayList<String> contacts = (ArrayList<String>)contactUri.get("result");
    Toast.makeText(getApplicationContext(), getData(contacts.get(0),NUMBER), Toast.LENGTH_SHORT).show();
}


文章来源: Android Multiple Contacts Chooser (with option of choosing which phone number)