我正在尝试使用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)