ViewModel 사용하기
2021. 6. 5. 02:25
Activity life cycle 때문에
화면을 회전하면 Activity가 파괴되고 재생성 되어
기존에 있던 리스트들 초기화되어 리스트가 안보이는 현상이 발생한다.
이러한 현상을 해결하기위해
ViewModel을 사용한다.
ViewModel이란
life cycle에 관계없이 데이터를 관리하기 위해 사용된다.
ViewModel은 Activity가 완전히 종료되었을 때 끝난다.
ViewModel 사용하기
아래는 todolist 만들 때 사용했던 ViewModel이다.
MutableLiveData를 만들어 데이터 변화를 감지하도록 한다.
데이터가 변했을 때 MutableLiveData를 갱신한다.
class MainViewModel : ViewModel() {
val todoLiveData = MutableLiveData<List<Todo>>()
private var data = arrayListOf<Todo>()
fun addTodo(todo : Todo){
data.add(todo)
todoLiveData.value = data
}
fun deleteTodo(todo: Todo) {
data.remove(todo)
todoLiveData.value = data
}
fun toggleTodo(todo: Todo){
todo.isDone = !todo.isDone
todoLiveData.value = data
}
}
728x90
'💻개발 > Android' 카테고리의 다른 글
상단바 없애기 (0) | 2021.06.19 |
---|---|
Glide : URL로 이미지 로딩하기 (0) | 2021.06.19 |
기본 이미지 추가하기 (0) | 2021.06.04 |
Retrofit2 사용하기 (0) | 2021.05.31 |
Async (0) | 2021.05.30 |