【发布时间】:2021-08-19 17:31:15
【问题描述】:
我正在尝试借助 for 循环通过 livedata ovserver 从 viwmodel 获取多个数据。
我成功地一一获取所有数据,并在 Toast 按摩中显示出来。但问题是,我无法将这些数据添加到可变列表中。
我可以通过 onCreate 方法在此列表中添加项目。但我无法从观察者内部添加任何项目。
已编辑:
private val vocabCount: MutableList<Long> = ArrayList()
override fun onCreate(savedInstanceState: Bundle?) {
for (i in 1..5){
folderListViewModel.getVocabCount("$i").observe(this,{it ->
vocabCount.add(it)
})
}
}
每次getVocabCount("$i") 函数接受一个字符串参数并返回一个长值。我想将其添加到我的可变列表中。
【问题讨论】:
-
我们需要查看更多代码以了解正在发生的事情以及您的期望。是
for在onCreate()内循环吗?你能告诉我们你的 ViewModel 中getVocabCount函数的内容吗? -
我编辑了我的问题。
for循环在我的onCreate()方法中。getVocabCount函数接受一个字符串参数并返回一个长值。返回过程成功完成。我得到这个值。但我无法将它们添加到我的 mutableList 中。 -
你的意思是它返回一个
LiveData<Long>?你不能观察 Long,只能观察 LiveData。
标签: android-studio kotlin android-livedata android-viewmodel mutablelist