在Android中选择多个联系人

时间:2010-06-30 03:57:35

标签: android

有没有类似于ACTION_PICK的方法从地址簿中选择多个联系人然后返回上一个活动?

1 个答案:

答案 0 :(得分:1)

不是完整的答案,但无论如何都可能有用:

// Let user select (multiple) from a list of contacts with email addresses
Intent i = new Intent(Intent.ACTION_GET_CONTENT, Email.CONTENT_URI);
startActivityForResult(Intent.createChooser(i, ""), MY_RESULT_1);

在onActivityResult中,您显然只会获得一个代表整个联系人集的Uri(在data.getData()中)。大。

在HTC Desire / Froyo上,data.getExtras()包含三个ArrayLists,其中一个似乎保存用户选择的记录的Id。

Set<String> keys = data.getExtras().keySet();
ArrayList<Integer> ids = null;
for (String s : keys) {
    Object o = data.getExtras().get(s);
    if (o instanceof ArrayList) {
        ArrayList a = (ArrayList) o;
        if (a.size() > 0 && a.get(0) instanceof Integer) {
          ids = a;
        }
    }
}

您可以使用这些来过滤查询data.getData()Uri。

的结果

不漂亮,可能是HTC特有的。你的里程可能会有所不同。

如果有人可以指出更聪明的方式,我是一个快乐的倾听者:)