【问题标题】:how can I add arrayList elements into model class arrayList in kotlin?如何在 kotlin 中将 arrayList 元素添加到模型类 arrayList 中?
【发布时间】:2021-12-30 22:17:04
【问题描述】:

我正在尝试将arrayList 的元素添加到模型类arrayList 中。但最后,模型类的所有元素成为最后添加的元素。我错过了什么?谢谢

这是模型类

class ChaplainAvailableTimesModelClass(
    var time: String? = null,
    val isBooked: Boolean = false,
    val patientUid: String? = null

    ) {
}

我在这里定义了数组列表

private var chaplainAvailableTimes = ArrayList<ChaplainAvailableTimesModelClass>()
private var temporaryTimes= ArrayList<String>()

这是添加部分

val chaplainAvailableTimesModelClass = ChaplainAvailableTimesModelClass()
dbSaveAvailableTimes = db.collection(chaplainCollectionName).document(chaplainUserId)
for (k in 0 until temporaryTimes.size){
     chaplainAvailableTimesModelClass.time = temporaryTimes[k]
     chaplainAvailableTimes.add(chaplainAvailableTimesModelClass)
}

【问题讨论】:

  • 对列表使用var 而不是val 通常是一个错误。

标签: android android-studio kotlin arraylist


【解决方案1】:

你的代码中的问题是这样的:

val chaplainAvailableTimesModelClass = ChaplainAvailableTimesModelClass() /// <-----
dbSaveAvailableTimes = db.collection(chaplainCollectionName).document(chaplainUserId)
for (k in 0 until temporaryTimes.size){
     chaplainAvailableTimesModelClass.time = temporaryTimes[k]
     chaplainAvailableTimes.add(chaplainAvailableTimesModelClass)
}

您在 for 循环之前实例化 chaplainAvailableTimesModelClass 一次,并在将其添加到数组列表时使用相同的实例。您需要根据所需的数量 (temproraryTimes.size) 创建不同的 chaplainAvailableTimesModelClass 实例。

因此,根据您想要做什么,将 chaplainAvailableTimesModelClass 的实例化移动到 for 循环内可能是值得的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2021-03-19
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    相关资源
    最近更新 更多