Как создать наблюдаемый список в kotlin

Я хочу обновить свой текст всякий раз, когда в мой список добавлен новый элемент. Я попытался сделать это с помощью кода ниже.

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

Но, похоже, это не работает. Любые идеи?

Это не работает, потому что делегат наблюдателя наблюдает только за изменениями в переменной , а не с объектом, хранящимся в этой переменной . Поэтому, когда список изменяется, переменная по-прежнему указывает на тот же список, и наблюдаемый делегат не знает, что что-то изменилось. Чтобы заметить это, вам понадобятся какие-то средства для фактического наблюдения за списком, который не является чем-то, что Kotlin или Java предоставляет из коробки. Для этого вам понадобится какой-то наблюдаемый список.

Кроме того, вы можете использовать стандартный список (вместо измененного), и всякий раз, когда вам нужно изменить список, замените его на новую версию списка. Таким образом, вы можете прослушивать изменения так же, как хотите, но, вероятно, вам нужно настроить много другого кода, используя этот список.