기술적용
LiveData 구현
131 developer
2022. 3. 16. 10:57
1. Dao 클래스 LiveData 추가
2. observe 메소드 적용
3. 매개변수 이름 정의 가능 (it -> todos)
MutableLiveData
- 변경이 가능한 live data
- 동기, 비동기
- setValue : 일반적으로 사용
- postValue : 비동기(백그라운드)에서 사용
class MainViewModel : ViewModel() {
val itemLiveData = MutableLiveData<List<Store>>()
val loadingLiveData = MutableLiveData<Boolean>()
...
loadingLiveData.value = true // 값이 바뀌면 observe 실행
...
itemLiveData.value = storeInfo.stores // 값이 바뀌면 observe 실행
}
activity 파일
viewModel.apply {
itemLiveData.observe(this@MainActivity, Observer {
storeAdapter.updateItems(it)
})
loadingLiveData.observe(this@MainActivity, Observer { isLoading ->
progressBar.visibility = if (isLoading) View.VISIBlE else View.GONE
})
}