2016-05-12 88 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给出所选图像的计数