마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

mvvm에서 two-way 방식

0 추천
안녕하세요.

mvvm관련해서 질문이 있는데요.'

mvvm에서 view는 viewmodel을 수정할 수 없어야 하잖아요.

그래서 MutableLiveData는 보통 private을 하고 livedata을 활용해서 데이터를 불러오는걸 알고 있습니다.

예를들어 ViewModel에 val text = MutableLiveData<String>() 선언하고

xml에 dataBinding 을 사용하게 해서 editText에서 text에 @={viewModel.text}을 하게 되면요. 양쪽에서 해당 변수에 접근하게 되는 거잖아요. 그렇게 되면 결국 view가 viewmodel에 접근해서 수정하는게 되니 mvvm의 원칙을 어기는 것 아닌가요?
키리링 (840 포인트) 님이 2022년 9월 7일 질문

1개의 답변

0 추천

LiveData는 외부에 공개할 때 MutableLiveData를 바로 사용하지 않고 읽기 전용인 LiveData를 사용합니다.

private val _text = MutableLiveData<String>()
val text: LiveData<String> get() = _text

그리고 데이터의 변경은 ViewModel에 함수를 하나 공개해서 하시면 됩니다.

spark (227,830 포인트) 님이 2022년 9월 7일 답변
...