我正在尝试使用uriArray
来解析图像的路径,但是卡在了Kotlin中的某个点上,这给了我 Array!找到 Array 的问题>
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
的新手,请给我一些建议,我们将感激不尽。
答案 0 :(得分:1)
由于您使用的是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)
答案 1 :(得分:1)
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()
}