将URI列表传递给ACTION_QUICK_VIEW

时间:2019-07-06 18:51:44

标签: android android-intent kotlin

参考:ACTION_QUICK_VIEW_DOCUMENTATION

在文档中说ACTION_QUICK_VIEW应该能够通过ClipData获取Uri列表,以便可以显示多个项目,这是我尝试过的-但图像视图最终完全变成了“黑色”,就好像没有图像加载。

仅用一个Uri设置“ intent.data”就可以了,只是在添加ClipData时它会消失。

我是Kotlin / Android的新用户,只有两天时间,如果我的方法完全错误地使用xD,请对不起

var uriArray = ArrayList<Uri>()
/*
some loop to populate uriArray with image URLs
eg: */
uriArray.add("https://example.com/image1.jpg".toUri())
uriArray.add("https://example.com/image2.jpg".toUri())
uriArray.add("https://example.com/image3.jpg".toUri())

val clipData: ClipData? = null
uriArray.forEach {
    var item = ClipData.Item(it)
    if (clipData == null) {
        ClipData("URIs", arrayOf(ClipDescription.MIMETYPE_TEXT_URILIST), item)
    }
    else {
        clipData!!.addItem(item)
    }
}

val intent = Intent(Intent.ACTION_QUICK_VIEW)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_GRANT_READ_URI_PERMISSION
intent.clipData = clipData
intent.putExtra(Intent.EXTRA_INDEX, 2)  /* just for testing, should put us at image index 2 */

startActivity(intent)

0 个答案:

没有答案