Cómo crear una list observable en kotlin

Quiero actualizar mi text siempre que haya un nuevo elemento agregado a mi list. Intenté hacer esto por debajo del código …

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

Pero parece que no funciona … ¿Alguna idea?

No funciona porque el delegado observabe solo observa cambios en la variable , no en el object almacenado en esa variable . Entonces, cuando la list cambia, la variable aún apunta a la misma list, y el delegado observable no tiene idea de que algo ha cambiado. Para observar eso, necesitas algunos medios para observar la list, lo cual no es algo que Kotlin o Java brinden de la caja. Necesitarás algún tipo de list observable para eso.

Alternativamente, puede usar una list estándar (en lugar de una mutable), y siempre que necesite cambiar la list, reemplácela con la nueva versión de la list. De esta forma, puede escuchar los cambios tal como lo desea, pero probablemente necesite ajustar muchos otros códigos usando esa list.

  • Kotlin: ¿parameters de function enviados pero no ejecutados?
  • Kotlin: MyClass :: class.java vs this.javaClass
  • Kotlin equivalente para el set de classs de C ++
  • Android Studio no comstack cambios hasta que se comstack por segunda vez con Kotlin
  • Mutidex y Kotlin
  • Alerta Anko de Android con error de visualización personalizada (Kotlin)
  • Cómo asignar una cadena JSON al map de Kotlin
  • Tamaño de file grande al convertir bitmap a PDF
  • Kotlin Expuesto no realiza transacción
  • La conversión de unidades de kilómetros a millas no devuelve el resultado esperado
  • ReactiveStreams NPE cuando se utiliza publishOn con Publisher personalizado