Итак, в основном я пытаюсь добиться открытия Gallery
в Android и позволяю пользователю выбирать multiple images
. Теперь этот вопрос задан часто, но я не удовлетворен ответами. В основном потому, что я нашел что-то интересное в документах в моей среде IDE (я вернусь к этому позже), и поэтому я не хочу использовать пользовательский адаптер, но только ванильный.
Теперь мой код для выбора одного изображения:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);
Теперь People on SO и другие веб-сайты сообщают вам, что у вас есть 2 варианта:
1) Вместо этого используйте ACTION_GET_CONTENT
, но ACTION_SEND_MULTIPLE
.
Это не работает. Это соответствует документам для sending
файлов, а не retrieving
, и это именно то, что он делает. При использовании ACTION_SEND_MULTIPLE у меня появилось окно, открытое на моем устройстве, где мне нужно выбрать приложение для отправки моих данных. Это не то, что я хочу, поэтому я задаюсь вопросом, как люди добились этого с помощью этого решения. Я что-то пропустил?
2) Внедрите custom Gallery
. Теперь это мой последний вариант, который я рассмотрю, потому что imho это не то, что я ищу, потому что я должен сам его стилизовать. И почему, черт возьми, вы просто не можете выбрать несколько изображений в галерее ванили?
Для этого должен быть вариант. Теперь интересная вещь, которую я обнаружил:
Я нашел это в описании документации ACTION_GET_CONTENT
.
Если вызывающий может обрабатывать несколько возвращенных элементов (пользователь выполняет множественный выбор), то он может указывать EXTRA_ALLOW_MULTIPLE для укажите это.
Это довольно интересно. Здесь они ссылаются на вариант использования, когда пользователь может выбрать несколько элементов?
Позже они говорят в документах:
Вы можете использовать EXTRA_ALLOW_MULTIPLE, чтобы разрешить пользователю выбирать несколько элементы.
Значит, это довольно очевидно? Это то, что мне нужно. Но мой следующий вопрос: где я могу положить этот EXTRA_ALLOW_MULTIPLE
? Печально то, что я не могу найти это нигде в developers.android guide, а также это не определено как константа в классе INTENT.
Любой может помочь мне с этим EXTRA_ALLOW_MULTIPLE
?