Выбор нескольких контактов в Android - PullRequest
4 голосов
/ 30 июня 2010

Есть ли способ, аналогичный ACTION_PICK, чтобы выбрать несколько контактов из адресной книги и затем вернуться к предыдущему действию?

1 Ответ

1 голос
/ 24 ноября 2010

Не полный ответ, но может быть полезен в любом случае:

// 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.Ваш пробег может варьироваться.

Если кто-то может указать на более умный способ, я - счастливый слушатель :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...