如何在kotlin中创建一个可观察列表

我想更新我的文本,每当有一个新的元素添加到我的列表..我试图通过下面的代码做到这一点..

var myList: MutableList<ArrayList<String>> by Delegates.observable(mutableListOf(), onChange = { _, _, new -> Constants.debug("Value Changed") }) 

但似乎没有工作..任何想法?

它不起作用,因为observabe委托只观察变量的变化 ,而不是变量中 存储的对象。 所以当列表发生变化时,变量仍然指向相同的列表,可观察的委托并不知道任何事情已经改变。 为了观察,您需要一些实际观察列表的方法,这不是Kotlin或Java提供的开箱即用的功能。 你需要一些可观察的清单。

或者,您可以使用标准列表(而不是可变的列表),并且每当您需要更改列表时,请将其替换为列表的新版本。 这样你可以像你想要的那样听取更改,但可能需要使用该列表来调整很多其他代码。