したがって、基本的に私が達成しようとしているのはGallery
、Androidでを開いて、ユーザーに選択させることmultiple images
です。今、この質問は頻繁に尋ねられていますが、私は答えに満足していません。主に私は私のIDEのde docsで何か面白いものを見つけたので(後でこれに戻ります)、それによってカスタムアダプターを使用したくはなく、通常のアダプターだけを使用します。
1つの画像を選択するためのコードは次のとおりです。
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);
People on SOや他のWebサイトでは、2つのオプションがあることがわかります。
1)使用しない ACTION_GET_CONTENT
しかし、ACTION_SEND_MULTIPLE
その代わり。
これは機能しません。これはsending
ファイルのドキュメントによるretrieving
ものであり、そうではありません。ACTION_SEND_MULTIPLEを使用すると、デバイスでウィンドウが開き、データを送信するアプリケーションを選択する必要があります。それは私が望んでいることではないので、このソリューションで人々がこれをどのように達成したのか疑問に思います。
2)を実装しcustom Gallery
ます。今これが私の最後のオプションです。私はそれを自分でスタイルする必要があるため、私が探しているものではないので、私が検討する最後のオプションです。なぜバニラギャラリーで複数の画像を選択できないのですか。
これにはオプションが必要です。今、私が見つけた興味深いものはこれです。
私が見つけのドキュメントの説明でこれを見つけましたACTION_GET_CONTENT
。
呼び出し元が複数の返されたアイテム(ユーザーが複数選択を実行する)を処理できる場合は、EXTRA_ALLOW_MULTIPLEを指定してこれを示すことができます。
これはかなり興味深いです。ここでは、ユーザーが複数のアイテムを選択できるユースケースを参照していますか?
後で彼らはドキュメントで言う:
EXTRA_ALLOW_MULTIPLEを使用して、ユーザーが複数のアイテムを選択できるようにすることができます。
これはかなり明白ですよね?これは私が必要なものです。しかし、私の次の質問はどこにありEXTRA_ALLOW_MULTIPLE
ますか?悲しいことに、developers.androidのガイドでこれを見つけることができません。もこれが見つからないことと、INTENTクラスの定数として定義されていないことです。
誰でもこれを手伝ってくれるEXTRA_ALLOW_MULTIPLE
?
EXTRA_ALLOW_MULTIPLE
、複数の項目を選択できます。getClipData()
で返されたインテントを呼び出すことにより、URIを取得しますonActivityResult
。唯一の問題は、ギャラリーウィジェットが複数選択を許可しないことです。その場合、任意の画像をクリックするとチューザーが終了し、getData
返されたインテントを呼び出すことで(単一のアイテムの)URIを取得できます