環境
- Mac
- AndroidStudio4.1
- Kotlin
LiveDataとは
データの変更をリアルタイムで検知して、それをトリガーとしてなんらかの処理を行う
LiveData
に検知したいデータを格納し、
Observer
に変更された時の処理を記述する
結論
コード解説
今回のコードの動き
事前準備
- LiveDataを初期化
- Observerを定義
動かす
- 背景をタップする
-
LiveData
の中身を変更する -
Observer
が変更を検知し、text_view
にsampleLiveData
の値を入れる
コード
build.gradle(app)
dependencies {
// LiveData
implementation "androidx.lifecycle:lifecycle-extensions:2.0.0"
}
MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// LiveDataを初期化
val sampleLiveData: MutableLiveData<LocalDateTime> by lazy {
MutableLiveData<LocalDateTime>()
}
// Observerを定義
// 3.sampleLiveData の値の変化を検知し、実行される
sampleLiveData.observe(this, Observer { value ->
// sampleLiveData.valueの値が変数valueに入っている
value?.let {
text_view.text = it.toString() // text_viewにsampleLiveDataの内容を入れる
}
})
// 1.背景タップ時
constraint.setOnClickListener {
// 2.sampleLiveDataに現在時刻を入れる
sampleLiveData.value = LocalDateTime.now()
}
}
}