Android/kotlin/LiveData
提供: 初心者エンジニアの簡易メモ
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"
}
}
