Im Grunde versuche ich, das Gallery
in Android zu öffnen und den Benutzer auswählen zu lassen multiple images
. Jetzt wurde diese Frage häufig gestellt, aber ich bin mit den Antworten nicht zufrieden. Hauptsächlich, weil ich in meiner IDE etwas Interessantes in de docs gefunden habe (darauf komme ich später zurück) und daher keinen benutzerdefinierten Adapter verwenden möchte, sondern nur den Vanille-Adapter.
Jetzt lautet mein Code für die Auswahl eines Bildes:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);
Jetzt werden Ihnen die Leute auf SO und anderen Websites sagen, dass Sie zwei Möglichkeiten haben:
1) Verwenden Sie nicht , ACTION_GET_CONTENT
sondern ACTION_SEND_MULTIPLE
stattdessen.
Dieser funktioniert nicht. Dieser ist gemäß den Dokumenten für sending
Dateien und nicht retrieving
und genau das ist es, was es tut. Bei Verwendung von ACTION_SEND_MULTIPLE wurde auf meinem Gerät ein Fenster geöffnet, in dem ich eine Anwendung auswählen muss, an die meine Daten gesendet werden sollen. Das ist nicht das, was ich will, also frage ich mich, wie die Leute dies mit dieser Lösung erreicht haben. Vermisse ich etwas?
2) Implementieren Sie eine custom Gallery
. Dies ist meine letzte Option, die ich in Betracht ziehen werde, weil ich imho nicht das bin, wonach ich suche, weil ich sie selbst stylen muss UND warum zum Teufel können Sie einfach nicht mehrere Bilder in der Vanille-Galerie auswählen?
Es muss eine Option dafür geben. Nun ist das Interessante, was ich gefunden habe, Folgendes:
Ich habe dies in der Beschreibung der Dokumentation von gefunden ACTION_GET_CONTENT
.
Wenn der Anrufer mehrere zurückgegebene Elemente verarbeiten kann (der Benutzer führt eine Mehrfachauswahl durch), kann er EXTRA_ALLOW_MULTIPLE angeben, um dies anzuzeigen.
Das ist ziemlich interessant. Hier beziehen sie sich auf den Anwendungsfall, in dem ein Benutzer mehrere Elemente auswählen kann?
Später heißt es in den Dokumenten:
Sie können EXTRA_ALLOW_MULTIPLE verwenden, damit der Benutzer mehrere Elemente auswählen kann.
Das ist also ziemlich offensichtlich, oder? Das ist das, was ich benötige. Aber meine folgende Frage ist: Wo kann ich das hinstellen EXTRA_ALLOW_MULTIPLE
? Das Traurige ist, dass ich dieses Nein nirgendwo im Entwickler.android-Handbuch finden kann und dass dies auch nicht als Konstante in der INTENT-Klasse definiert ist.
Kann mir jemand dabei helfen EXTRA_ALLOW_MULTIPLE
?
EXTRA_ALLOW_MULTIPLE
Sie mehrere Elemente auswählen. Rufen Sie die URIs ab, indem Sie die getClipData()
zurückgegebene Absicht in aufrufen onActivityResult
. Das einzige Problem ist, dass das Galerie-Widget keine Mehrfachauswahl zulässt. In diesem Fall wird durch Klicken auf ein Bild die Auswahl beendet und Sie können die URI (des einzelnen Elements) abrufen, indem Sie die getData
zurückgegebene Absicht aufrufen