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 javaClass <> falta la dependencia en la última versión de Android Studio 3.0
  • ¿Qué path es mejor entre object compañero y diversión sin una class en Kotlin?
  • ¿Cómo pasar arguments a la secuencia de commands kotlin?
  • Crear un map con valores que contengan generics
  • incapaz de configurar a Kotlin
  • GridView solo elimina el primer elemento cuando se hace clic en un elemento. Java-> Kotlin
  • El complemento 'org.jetbrains.kotlin' no se inicializó y se desactivará. Reinicia Android Studio
  • Android: aguarde a que se completen varias tareas
  • La expresión lambda no se usa
  • Kotlin solo leyó propiedad con y sin getter
  • Parceler: no se puede encontrar el generador de lectura / escritura para el tipo io.realm.RealmList