Więc w zasadzie to, co próbuję osiągnąć, to otworzyć Gallery
w systemie Android i pozwolić użytkownikowi wybrać multiple images
. Teraz to pytanie jest zadawane często, ale nie jestem zadowolony z odpowiedzi. Głównie dlatego, że znalazłem coś interesującego w de docs w moim IDE (wrócę do tego później) i dlatego nie chcę używać niestandardowego adaptera, ale tylko waniliowego.
Teraz mój kod do wyboru jednego obrazu to:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);
Teraz ludzie w SO i innych witrynach powiedzą Ci, że masz dwie opcje:
1) Nie używaj, ACTION_GET_CONTENT
ale ACTION_SEND_MULTIPLE
zamiast tego.
Ten nie działa. Ten jest zgodny z dokumentacją dotyczącą sending
plików, a nie, retrieving
i dokładnie to robi. Podczas korzystania z ACTION_SEND_MULTIPLE otworzyło się okno na moim urządzeniu, w którym muszę wybrać aplikację, do której mam wysłać moje dane. Nie tego chcę, więc zastanawiam się, jak ludzie osiągnęli to dzięki temu rozwiązaniu. Czy coś mi brakuje?
2) Zaimplementuj custom Gallery
. To moja ostatnia opcja, którą rozważę, ponieważ nie jest to, czego szukam, ponieważ muszę sam ją stylizować I dlaczego do cholery po prostu nie możesz wybrać wielu zdjęć w galerii waniliowej?
Musi istnieć opcja na to .. Teraz interesująca rzecz, którą znalazłem, jest taka:
znalazłem to w opisie docs ACTION_GET_CONTENT
.
Jeśli wywołujący może obsłużyć wiele zwracanych elementów (użytkownik dokonujący wielokrotnego wyboru), może określić EXTRA_ALLOW_MULTIPLE, aby to wskazać.
To jest całkiem interesujące. Tutaj odnoszą się do przypadku użycia, w którym użytkownik może wybrać wiele elementów?
Później w dokumentach mówią:
Możesz użyć EXTRA_ALLOW_MULTIPLE, aby umożliwić użytkownikowi wybranie wielu elementów.
Więc to jest całkiem oczywiste, prawda? To jest to, czego potrzebuję. Ale moje następujące pytanie brzmi: gdzie mogę to umieścić EXTRA_ALLOW_MULTIPLE
? Smutne jest to, że nie mogę znaleźć tego nigdzie w podręczniku programistów.android, a także nie jest to zdefiniowane jako stała w klasie INTENT.
Czy ktoś może mi w tym pomóc EXTRA_ALLOW_MULTIPLE
?
EXTRA_ALLOW_MULTIPLE
pozwala wybrać wiele elementów. Uzyskaj identyfikatory URI, wywołując getClipData()
zwróconą intencję w onActivityResult
. Jedynym problemem jest to, że widżet galerii nie pozwala na wielokrotny wybór. W takim przypadku kliknięcie dowolnego obrazu zakończy wybór i możesz uzyskać identyfikator URI (pojedynczego elementu), wywołując getData
zwróconą intencję