【问题标题】:Android Multiple Contacts Chooser (with option of choosing which phone number)Android 多联系人选择器(可选择选择哪个电话号码)
【发布时间】:2012-05-14 00:47:09
【问题描述】:
我需要能够在 Android 中选择多个联系人。流程是这样的:
- 用户单击打开联系人应用程序的按钮。
- 但是,我需要能够选择多个联系人(在同一启动意图中),而不是能够选择单个联系人。
- 如果一个联系人有多个电话号码,我需要用户能够选择他想要选择的电话号码。
当我在消息应用程序中单击“联系人”时,我的三星 Android 手机(运行 2.3 Gingerbread)中已经存在此功能。请看下面的截图:
【问题讨论】:
标签:
android
android-intent
android-2.2-froyo
【解决方案2】:
你必须自己写这一切。您可以使用ContactsContract 提供程序查询具有电话号码的所有联系人,然后对于选定的联系人,您可以查询该联系人的所有电话号码。您可以根据需要在活动或对话框中显示结果。
【解决方案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();
}