observable
inline fun <T> observable(initialValue: T, crossinline onChange: (property: KProperty<*>, oldValue: T, newValue: T) -> Unit): ReadWriteProperty<Any?, T>(source)
Returns a property delegate for a read/write property that calls a specified callback function when changed.
Since Kotlin
1.0Parameters
initialValue
the initial value of the property.
onChange
the callback which is called after the change of the property is made. The value of the property has already been changed when this callback is invoked.
Samples
import kotlin.properties.Delegates
import kotlin.test.*
fun main() {
//sampleStart
var observed = false
var max: Int by Delegates.observable(0) { property, oldValue, newValue ->
observed = true
}
println(max) // 0
println("observed is ${observed}") // false
max = 10
println(max) // 10
println("observed is ${observed}") // true
//sampleEnd
}