Quindi, in pratica, quello che sto cercando di ottenere è aprire il Gallery
in Android e lasciare che l'utente selezioni multiple images
. Ora questa domanda è stata posta frequentemente ma non sono soddisfatto delle risposte. Principalmente perché ho trovato qualcosa di interessante in de docs nel mio IDE (ci tornerò più tardi) e quindi non voglio usare un adattatore personalizzato ma solo quello vaniglia.
Ora il mio codice per selezionare un'immagine è:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);
Ora le persone su SO e altri siti Web ti diranno che hai 2 opzioni:
1) Non usare ACTION_GET_CONTENT
ma ACTION_SEND_MULTIPLE
invece.
Questo non funziona. Questo è secondo i documenti per i sending
file e non retrieving
ed è esattamente quello che fa. Quando si utilizza ACTION_SEND_MULTIPLE, sul mio dispositivo si apre una finestra in cui devo selezionare un'applicazione a cui inviare i miei dati. Non è quello che voglio, quindi mi chiedo come le persone abbiano ottenuto questo risultato con questa soluzione .. Mi manca qualcosa?
2) Implementare un file custom Gallery
. Questa è la mia ultima opzione che prenderò in considerazione perché imho non è quello che sto cercando perché devo modellarlo da solo E perché diamine non puoi selezionare più immagini nella galleria vanilla?
Ci deve essere un'opzione per questo .. Ora la cosa interessante che ho trovato è questa: l'
ho trovata nella descrizione della documentazione di ACTION_GET_CONTENT
.
Se il chiamante può gestire più elementi restituiti (l'utente che esegue la selezione multipla), può specificare EXTRA_ALLOW_MULTIPLE per indicarlo.
Questo è piuttosto interessante. Qui lo fanno riferimento al caso d'uso in cui un utente può selezionare più elementi?
Più tardi si dice nei documenti:
Puoi utilizzare EXTRA_ALLOW_MULTIPLE per consentire all'utente di selezionare più elementi.
Quindi questo è abbastanza ovvio, vero? Questo è ciò di cui ho bisogno. Ma la mia domanda seguente è: dove posso metterlo EXTRA_ALLOW_MULTIPLE
? La cosa triste è che non riesco a trovarlo da nessuna parte nella guida developers.android e inoltre non è definito come una costante nella classe INTENT.
Qualcuno può aiutarmi con questo EXTRA_ALLOW_MULTIPLE
?
EXTRA_ALLOW_MULTIPLE
consente di selezionare più elementi. Ottieni gli URI richiamando getClipData()
l'intento restituito in onActivityResult
. L'unico problema è che il widget della galleria non consente la selezione multipla. In tal caso, facendo clic su qualsiasi immagine, il selezionatore terminerà e potrai ottenere l'URI (del singolo elemento) chiamando getData
l'intento restituito