在 kotlin android 中从 Application 变量创建单独的 ArrayList

Create separate ArrayList from Application variable in kotlin android

我正在尝试从 Application class 对象中声明的变量复制 List<>。我的问题是我无法制作单独的副本。我对第二个变量所做的任何更新也会更新应用程序变量。下面是我正在使用的代码:

var app: MyApplication
private var taskItems: ArrayList<TaskItem>? = null

override fun onCreate(savedInstanceState: Bundle?) {
    app = applicationContext as MyApplication
}

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    taskItems = app.selectedTask?.items!!
}

fun updateCount(idx: Int, quantity: Int){
    taskItems?.get(idx)?.count = quantity
    // This updates both taskItems and app.selectedTask.items
    // I want to update only taskItems variable
}

我只想更新函数 updateCount() 中的 taskItems 变量,而不是应用程序变量 app.selectedTask.items。我已经尝试在 onCreateView 函数中进行以下更改:

尝试 1:

taskItems= ArrayList<TaskItem>(app.selectedTask?.items!!)

尝试2:

taskItems= ArrayList()
taskItems!!.addAll(app.selectedTask?.items!!)

尝试 3:

taskItems= ArrayList()
for (item in app.selectedTask?.items!!) {
    taskItems!!.add(item)
}

但是上面代码的 none 对我有用。非常感谢任何帮助。

试试下面的代码:

taskItems= ArrayList()
app.selectedTask?.items!!.forEach {
    taskItems.add(it.copy())
}