MutableList 不添加新值 Kotlin
MutableList not adding new values Kotlin
我正在从特定文件夹中获取文件路径列表,但是当我尝试将其添加到我的可变列表中时,该列表仍然是空的。
var filePath: MutableList<String>? = null
val path = File(getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).path, "BacFo Camera")
if (path.exists()) {
for(i in path.list().iterator()){
filePath?.add("" + path.toString() + "/" + i) //here i=file name
}
}
在 运行 调试器之后,值确实出现在变量 i
中,但可变列表如何保持为空。我是 Kotlin 的新手,请帮忙!!
the list remains empty.
不,列表是null
:
var filePath :MutableList<String> ?=null
尝试为其分配一个值:
var filePath: MutableList<String> = mutableListOf()
试试这个:
var filePath: MutableList<String> = arrayListOf()
您声明了您的 MutableList,但使用 null
对其进行了初始化。所以这个变量是保留的,但没有用列表初始化。
当您尝试向列表中添加一个值时,您使用的 safe call ?.
仅在值(您的列表)不是 null
时才执行。但实际上是null
调用没有执行。
您应该初始化您的列表,例如ArrayList
.
var filePath: MutableList<String>? = ArrayList<String>()
因为你现在总是初始化你的列表,你甚至可以使用 val
而不是 var
并且可以摆脱保存调用:
val filePath: MutableList<String>? = ArrayList<String>()
val path = File(getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).path, "BacFo Camera")
if (path.exists()) {
for(i in path.list().iterator()){
filePath.add("" + path.toString() + "/" + i) //here i=file name
}
}
我正在从特定文件夹中获取文件路径列表,但是当我尝试将其添加到我的可变列表中时,该列表仍然是空的。
var filePath: MutableList<String>? = null
val path = File(getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).path, "BacFo Camera")
if (path.exists()) {
for(i in path.list().iterator()){
filePath?.add("" + path.toString() + "/" + i) //here i=file name
}
}
在 运行 调试器之后,值确实出现在变量 i
中,但可变列表如何保持为空。我是 Kotlin 的新手,请帮忙!!
the list remains empty.
不,列表是null
:
var filePath :MutableList<String> ?=null
尝试为其分配一个值:
var filePath: MutableList<String> = mutableListOf()
试试这个:
var filePath: MutableList<String> = arrayListOf()
您声明了您的 MutableList,但使用 null
对其进行了初始化。所以这个变量是保留的,但没有用列表初始化。
当您尝试向列表中添加一个值时,您使用的 safe call ?.
仅在值(您的列表)不是 null
时才执行。但实际上是null
调用没有执行。
您应该初始化您的列表,例如ArrayList
.
var filePath: MutableList<String>? = ArrayList<String>()
因为你现在总是初始化你的列表,你甚至可以使用 val
而不是 var
并且可以摆脱保存调用:
val filePath: MutableList<String>? = ArrayList<String>()
val path = File(getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).path, "BacFo Camera")
if (path.exists()) {
for(i in path.list().iterator()){
filePath.add("" + path.toString() + "/" + i) //here i=file name
}
}