Kotlin 无法获得所需的类型干扰 阵列<Uri>!找到 数组<Uri?>



我正在尝试使用uriArray来解析图像的路径,但卡在 kotlin 中的某一点,这给了我所需的数组问题 找到数组

 val uriArray = arrayOfNulls<Uri>(imageList.size)
                    for (i in imageList.indices) {
                        val imgaesModel = imageList.get(i)
                        uriArray[i] = Uri.parse("file:" + imgaesModel.getPath())
                    }
                    mFilePathCallback!!.onReceiveValue(uriArray)
           // Above line is giving error 

请给我一些建议,因为我是Kotlin新手,很少会不胜感激。

tasoluko的答案的另一种选择是

val uriArray = Array<Uri>(imageList.size) { i ->
    val imagesModel = imageList[i] // get method can be written as indexing
    Uri.parse("file:" + imagesModel.path) // instead of getPath()
}

既然你使用的是arrayOfNulls,你的uriArray就由 Uri 组成?(可为空的 Uri(元素。由于 onReceiveValue 无法接收预期的类型,即 Uri 数组,而是接收 Uri 数组?我的建议不是创建一个arrayOfNulls,而是在kotlin中使用map函数将imageList转换为Uri列表,然后将该列表转换为数组并使用它。

我想应该是这样的。

val uriList = imagesList.map {
    Uri.parse("file:" + it.getPath())
}
val uriArray = uriList.toTypedArray() // something like this just convert list to array :)
mFilePathCallback!!.onReceiveValue(uriArray)

相关内容

最新更新