Android 不在Kotlin中添加新值的可变列表

Android 不在Kotlin中添加新值的可变列表,android,kotlin,mutablelist,Android,Kotlin,Mutablelist,我正在从特定文件夹获取文件路径列表,但当我尝试将其添加到可变列表中时,列表仍然为空 var filePath: MutableList<String>? = null val path = File(getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).path, "BacFo Camera") if (path.exists()) { for(i in path.list().iterator()

我正在从特定文件夹获取文件路径列表,但当我尝试将其添加到可变列表中时,列表仍然为空

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中,但变量列表中的某些值仍然为空。我是科特林的新手,请帮帮我

列表仍然为空

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
    }
}
否,列表为空:

尝试为其指定一个值:

var filePath: MutableList<String> = mutableListOf()
列表仍然为空

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
    }
}
否,列表为空:

尝试为其指定一个值:

var filePath: MutableList<String> = mutableListOf()
试试这个:

var filePath: MutableList<String> = arrayListOf()
试试这个:

var filePath: MutableList<String> = arrayListOf()

您声明了可变列表,但将其初始化为null。因此,变量是保留的,但不是用列表初始化的

当您尝试向列表中添加值时,请使用?。仅当列表中的值不为空时才执行。但实际上它是空的,因为调用没有执行

您应该初始化列表,例如使用ArrayList


您声明了可变列表,但将其初始化为null。因此,变量是保留的,但不是用列表初始化的

当您尝试向列表中添加值时,请使用?。仅当列表中的值不为空时才执行。但实际上它是空的,因为调用没有执行

您应该初始化列表,例如使用ArrayList


你能解释一下为什么这能解决OP的问题吗problem@Kingsley,这就解决了问题,因为您将可变列表初始化为可以添加新值的列表​​并动态更改其内容。你能解释一下为什么这能解决OP的问题吗problem@Kingsley,这就解决了问题,因为您将可变列表初始化为可以添加新值的列表​​并动态更改其内容。