Jadi pada dasarnya apa yang saya coba capai adalah membuka Gallery
di Android dan membiarkan pengguna memilih multiple images
. Sekarang pertanyaan ini telah sering ditanyakan tetapi saya tidak puas dengan jawabannya. Terutama karena saya menemukan sesuatu yang menarik di de docs di IDE saya (saya kembali lagi nanti) dan oleh karena itu saya tidak ingin menggunakan adaptor khusus tetapi hanya yang vanilla.
Sekarang kode saya untuk memilih satu gambar adalah:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);
Sekarang Orang-orang di SO dan situs web lain akan memberi tahu Anda bahwa Anda memiliki 2 opsi:
1) Jangan gunakan ACTION_GET_CONTENT
melainkan ACTION_SEND_MULTIPLE
.
Yang ini tidak berhasil. Yang ini sesuai dengan dokumen untuk sending
file dan bukan retrieving
dan itulah yang dilakukannya. Saat menggunakan ACTION_SEND_MULTIPLE saya mendapat jendela terbuka di perangkat saya di mana saya harus memilih aplikasi untuk mengirim data saya. Bukan itu yang saya inginkan, jadi saya bertanya-tanya bagaimana orang-orang mencapai ini dengan solusi ini .. Apakah saya melewatkan sesuatu?
2) Menerapkan custom Gallery
. Sekarang ini adalah opsi terakhir saya yang akan saya pertimbangkan karena imho bukan itu yang saya cari karena saya harus menatanya sendiri DAN mengapa Anda tidak dapat memilih banyak gambar di galeri vanilla?
Harus ada opsi untuk ini .. Sekarang hal menarik yang saya temukan adalah ini:
Saya menemukan ini di deskripsi dokumen ACTION_GET_CONTENT
.
Jika pemanggil dapat menangani beberapa item yang dikembalikan (pengguna melakukan beberapa pilihan), maka pemanggil dapat menentukan EXTRA_ALLOW_MULTIPLE untuk menunjukkan ini.
Ini cukup menarik. Di sini mereka merujuknya ke kasus penggunaan di mana pengguna dapat memilih beberapa item?
Kemudian mereka mengatakan di dokumen:
Anda dapat menggunakan EXTRA_ALLOW_MULTIPLE untuk memungkinkan pengguna memilih beberapa item.
Jadi ini cukup jelas bukan? Inilah yang saya butuhkan. Tetapi pertanyaan saya berikut ini adalah: Di mana saya bisa meletakkan ini EXTRA_ALLOW_MULTIPLE
? Hal yang menyedihkan adalah bahwa saya tidak dapat menemukan ini tidak di mana dalam panduan developer.android dan juga ini tidak didefinisikan sebagai sebuah konstanta di kelas INTENT.
Ada yang bisa membantu saya dengan ini EXTRA_ALLOW_MULTIPLE
?
EXTRA_ALLOW_MULTIPLE
memungkinkan Anda memilih beberapa item. Dapatkan URI dengan memanggil getClipData()
maksud yang dikembalikan dalam onActivityResult
. Satu-satunya masalah adalah widget galeri tidak mengizinkan banyak pilihan. Dalam hal ini mengklik gambar apa pun akan menyelesaikan pemilihan dan Anda bisa mendapatkan URI (dari satu item) dengan memanggil getData
maksud yang dikembalikan