Entonces, básicamente, lo que estoy tratando de lograr es abrir Gallery
en Android y dejar que el usuario seleccione multiple images
. Ahora bien, esta pregunta se ha hecho con frecuencia, pero no estoy satisfecho con las respuestas. Principalmente porque encontré algo interesante en los documentos en mi IDE (vuelvo a esto más tarde) y, por lo tanto, no quiero usar un adaptador personalizado sino solo el estándar.
Ahora mi código para seleccionar una imagen es:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);
Ahora la gente de SO y otros sitios web le dirán que tiene 2 opciones:
1) No lo use ACTION_GET_CONTENT
sino en su ACTION_SEND_MULTIPLE
lugar.
Este no funciona. Este es de acuerdo con los documentos para sending
archivos y no, retrieving
y eso es exactamente lo que hace. Cuando uso ACTION_SEND_MULTIPLE, se abre una ventana en mi dispositivo donde tengo que seleccionar una aplicación para enviar mis datos. Eso no es lo que quiero, así que me pregunto cómo la gente consiguió esto con esta solución. ¿Me pierdo algo?
2) Implementar un custom Gallery
. Ahora bien, esta es mi última opción que consideraré porque, en mi humilde opinión, no es lo que estoy buscando porque tengo que diseñarlo yo mismo Y ¿por qué diablos no puedes seleccionar varias imágenes en la galería de vainilla?
Debe haber una opción para esto ... Ahora, lo interesante que encontré es esto:
Encontré esto en la descripción de los documentos ACTION_GET_CONTENT
.
Si la persona que llama puede manejar varios elementos devueltos (el usuario realiza una selección múltiple), entonces puede especificar EXTRA_ALLOW_MULTIPLE para indicar esto.
Esto es muy interesante. Aquí lo están refiriendo al caso de uso en el que un usuario puede seleccionar varios elementos.
Más adelante dicen en los documentos:
Puede utilizar EXTRA_ALLOW_MULTIPLE para permitir que el usuario seleccione varios elementos.
Entonces esto es bastante obvio, ¿verdad? Esto es lo que necesito. Pero mi siguiente pregunta es: ¿Dónde puedo poner esto EXTRA_ALLOW_MULTIPLE
? Lo triste es que no puedo encontrar esto en ninguna parte de la guía developers.android y tampoco está definido como una constante en la clase INTENT.
¿Alguien puede ayudarme con esto EXTRA_ALLOW_MULTIPLE
?
EXTRA_ALLOW_MULTIPLE
permite seleccionar varios elementos. Obtenga los URI llamando getClipData()
a la intención devuelta en onActivityResult
. El único problema es que el widget de la galería no permitirá la selección múltiple. En ese caso, al hacer clic en cualquier imagen, finalizará la selección y podrá obtener el URI (de un solo elemento) llamando getData
a la intención devuelta