2016-05-12 31 views
1

選擇的圖像的數量如何檢查用戶是否從Intent(Intent.ACTION_OPEN_DOCUMENT)打開的圖像列表中選擇多個圖像或單個圖像。將爲此操作調用哪個活動?如何知道使用Intent.ACTION_OPEN_DOCUMENT

AFAIK from app OnActivityResult Intent的getdata()必須用於單個圖像選擇,getClipdata()用於多個圖像selection.Is這種有效的方式或任何其他直接的方式來獲取此信息。

回答

0

只是搜索答案Intent.ACTION_OPEN_DOCUMENT android源碼開放DocumentsActivity在下面的代碼被用於構建onTaskFinished()

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執行空檢查是獲取有關所選圖像數量的信息的唯一方法。最後,如果getData不爲null,則僅選擇一個圖像,否則選擇getClipData()。getItemCount給出所選圖像的計數