기술적용

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
		})
	}