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

BELATED ARTICLES

more