Тому в основному те, що я намагаюся досягти, - це відкрити Gallery
в Android і дати користувачеві вибір multiple images
. Зараз це питання задають часто, але я не задоволений відповідями. Головним чином, тому, що я знайшов щось цікаве в de docs у своєму IDE (я повернусь до цього пізніше), і тому я не хочу використовувати спеціальний адаптер, а лише ванільний.
Тепер мій код вибору одного зображення:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);
Тепер люди на SO та інших веб-сайтах скажуть вам, що у вас є два варіанти:
1) Не використовуйте, ACTION_GET_CONTENT
а ACTION_SEND_MULTIPLE
натомість.
Цей не працює. Цей відповідає документам для sending
файлів, а не, retrieving
і саме це робить. Під час використання ACTION_SEND_MULTIPLE у мене на пристрої відкрилося вікно, де мені потрібно вибрати програму, на яку потрібно надсилати свої дані. Це не те, чого я хочу, тому мені цікаво, як люди домоглися цього рішення? .. Чи щось я сумую?
2) Впровадити custom Gallery
. Тепер це мій останній варіант, який я буду розглядати, тому що імхо це не те, що я шукаю, тому що я мушу сам його стилювати І чому чорт ви просто не можете вибрати кілька зображень у ванільній галереї?
Має бути варіант для цього. Тепер цікаве, що я знайшов, це таке:
я знайшов це в описі документів ACTION_GET_CONTENT
.
Якщо абонент може обробляти декілька повернених елементів (користувач, що здійснює багаторазовий вибір), він може вказати EXTRA_ALLOW_MULTIPLE для позначення цього.
Це досить цікаво. Тут вони посилаються на випадок використання, коли користувач може вибрати кілька елементів?
Пізніше в документах кажуть:
Ви можете використовувати EXTRA_ALLOW_MULTIPLE, щоб дозволити користувачеві вибирати кілька елементів.
Так це досить очевидно, правда? Це те, що мені потрібно. Але моє наступне питання: Де я можу це поставити EXTRA_ALLOW_MULTIPLE
? Сумно в тому, що я не можу знайти це не там, де в керівництві developers.android, а також це не визначено як константа в класі INTENT.
Хтось може мені допомогти у цьому EXTRA_ALLOW_MULTIPLE
?
EXTRA_ALLOW_MULTIPLE
дозволяє вибрати декілька елементів. Отримайте URI, зателефонувавши getClipData()
на повернутий намір у onActivityResult
. Єдина проблема полягає в тому, що віджет галереї не дозволить отримати багаторазовий вибір. У такому випадку натискання будь-якого зображення завершить вибір, і ви зможете отримати URI (одного елемента), зателефонувавши getData
при поверненому намірі