2016-05-12 6 views
1

ユーザが複数の画像を選択したか、またはIntent(Intent.ACTION_OPEN_DOCUMENT)から開いた画像のリストから単一の画像を選択したかを確認する方法。このアクションのために呼び出されるアクティビティはどれですか?Intent.ACTION_OPEN_DOCUMENTを使用して画像の数を知る方法

AFAIK fromアプリケーションOnActivityResultインテントのgetdata()は単一の画像選択に使用し、getClipdata()は複数の画像選択用に使用する必要があります。この効率的な方法またはこの情報を取得するための直接的な方法です。

答えて

0

ちょうどその中で、次のコードは(onTaskFinishedで意図データを構築するために使用されたと答えIntent.ACTION_OPEN_DOCUMENT用アンドロイドのソースはDocumentsActivityを開く検索)

void onTaskFinished(Uri... uris) { 
    Log.d(TAG, "onFinished() " + Arrays.toString(uris)); 

    final Intent intent = new Intent(); 
    if (uris.length == 1) { 
     intent.setData(uris[0]); 
    } else if (uris.length > 1) { 
     final ClipData clipData = new ClipData(
       null, mState.acceptMimes, new ClipData.Item(uris[0])); 
     for (int i = 1; i < uris.length; i++) { 
      clipData.addItem(new ClipData.Item(uris[i])); 
     } 
     intent.setClipData(clipData); 
    } 

長さがsetDataメソッドを使用して一つのコードである場合、私は思うそうsetClipData手段getDataまたはgetClipDataのnullチェックは、選択されたイメージの数に関する情報を取得する唯一の方法です。最後にgetDataがnullでない場合は、選択された1つのイメージのみgetClipData()。getItemCountは選択されたイメージの数を返します。

関連する問題