onActivityResult erhält RESULT_CANCELLED bei Verwendung von Intent.EXTRA_ALLOW_MULTIPLE

8

Ich habe die folgende Schaltfläche in meiner Aktivität, die die Galerie öffnet, um einzelne oder mehrere Bilder auszuwählen, und darunter die Funktion OnActivityResult , die das Ergebnis als RESULT_CANCELLED für mehrere Bilder und RESULT_OK für zurückgibt ein einzelnes Bild. Nicht sicher, warum es passiert. Kann mir bitte jemand helfen.

%Vor%

Ich erhalte data.getData() als null , data.getExtras() als null .

Kann mir jemand sagen, wie ich die erforderlichen Ergebnisse aus dem obigen Code herausholen kann? Ich möchte die URIs aller Bilder, die der Benutzer aus der Galerie auswählt.

PS: Es funktioniert gut für ein einzelnes Bild, nicht sicher warum.

    
Prateek 26.06.2014, 14:49
quelle

1 Antwort

18

Endlich habe ich die Lösung dafür. Wenn EXTRA_ALLOW_MULTIPLE verwendet wird und mehr als ein Inhalt vom Benutzer ausgewählt wird, werden die Daten aus der Absicht in intent.getExtra() zurückgegeben und nicht nur in SDK-Versionen 18 und höher . Von dort können die Daten mit dem folgenden Code abgerufen werden - & gt;

%Vor%

Ich habe den Null-Check für ClipData gesetzt, weil bei einem einzelnen Bild die Daten in intent.getData() empfangen werden, während es bei Mehrfachauswahl als intent.getData() empfangen wird.

Für sdk-Versionen unter 18 und für die einfache Auswahl (unabhängig von der SDK-Version) können die Daten einfach auf folgende Weise abgerufen werden:

%Vor%     
Prateek 27.06.2014, 06:06
quelle

Tags und Links