facebook twitter hatena line email

Android/kotlin/LiveData

提供: 初心者エンジニアの簡易メモ
2021年2月10日 (水) 14:50時点におけるAdmin (トーク | 投稿記録)による版

移動: 案内検索

LiveDataとは

activityなどでデータを保管するのではなく、modelなどに保管するもの。

サンプル

app/build.gradle

dependencies {
    def lifecycle_version = "2.2.0"
    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
}

MainActivity.kt

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.lifecycle.Observer

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        var hogeViewModel = HogeViewModel()
        hogeViewModel.hoge.observe(this, Observer { it ->
            var hoge = it
            println("hoge=$hoge")
        })
        hogeViewModel.changeHoge()
    }
}

HogeViewModel.kt

import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel

class HogeViewModel : ViewModel() {
    private var _hoge: MutableLiveData<String>
    var hoge: LiveData<String>
    init {
        _hoge = MutableLiveData<String>()
        hoge = _hoge
    }

    fun changeHoge() {
        _hoge.value = "test"
    }
}

参考:https://qiita.com/K4N4/items/17012d5a1ffcc6fe9681