Donc, fondamentalement, ce que j'essaie de réaliser, c'est d'ouvrir le Gallery
sous Android et de laisser l'utilisateur sélectionner multiple images
. Maintenant, cette question a été posée fréquemment mais je ne suis pas satisfait des réponses. Principalement parce que j'ai trouvé quelque chose d'intéressant dans de docs dans mon IDE (j'y reviendrai plus tard) et que je ne veux donc pas utiliser d'adaptateur personnalisé mais juste celui de la vanille.
Maintenant, mon code pour sélectionner une image est:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);
Maintenant, les gens sur SO et d'autres sites Web vous diront que vous avez 2 options:
1) Ne pas utiliser ACTION_GET_CONTENT
mais à la ACTION_SEND_MULTIPLE
place.
Celui-ci ne fonctionne pas. Celui-ci est conforme à la documentation pour les sending
fichiers et non retrieving
et c'est exactement ce qu'il fait. Lorsque j'utilise ACTION_SEND_MULTIPLE, une fenêtre s'ouvre sur mon appareil et je dois sélectionner une application à laquelle envoyer mes données. Ce n'est pas ce que je veux, alors je me demande comment les gens ont réalisé cela avec cette solution. Est-ce que je rate quelque chose?
2) Implémentez un custom Gallery
. Maintenant, c'est ma dernière option que je vais envisager car à mon humble avis, ce n'est pas ce que je recherche car je dois le coiffer moi-même ET pourquoi diable vous ne pouvez tout simplement pas sélectionner plusieurs images dans la galerie vanille?
Il doit y avoir une option pour cela. Maintenant, la chose intéressante que j'ai trouvée est la suivante:
j'ai trouvé cela dans la description de la documentation ACTION_GET_CONTENT
.
Si l'appelant peut gérer plusieurs éléments retournés (l'utilisateur effectuant une sélection multiple), il peut alors spécifier EXTRA_ALLOW_MULTIPLE pour l'indiquer.
C'est assez intéressant. Ici, ils font référence au cas d'utilisation où un utilisateur peut sélectionner plusieurs éléments?
Plus tard, ils disent dans la documentation:
Vous pouvez utiliser EXTRA_ALLOW_MULTIPLE pour permettre à l'utilisateur de sélectionner plusieurs éléments.
C'est donc assez évident, non? C'est de quoi j'ai besoin. Mais ma question suivante est: où puis-je mettre cela EXTRA_ALLOW_MULTIPLE
? Le plus triste est que je ne trouve pas cela nulle part dans le guide developer.android et que cela n'est pas non plus défini comme une constante dans la classe INTENT.
Quelqu'un peut-il m'aider avec ça EXTRA_ALLOW_MULTIPLE
?
EXTRA_ALLOW_MULTIPLE
vous permet de sélectionner plusieurs éléments. Obtenez les URI en appelant l' getClipData()
intention renvoyée dans onActivityResult
. Le seul problème est que le widget de la galerie ne permet pas la sélection multiple. Dans ce cas, cliquer sur n'importe quelle image terminera le choix et vous pourrez obtenir l'URI (d'un seul élément) en appelant l' getData
intention renvoyée