개발노트/Kotlin
10주차 4일
시계속세상은아직돌아가는중
2023. 9. 14. 21:46
viewmodel을 통한 메인 데이터 통신
package com.example.class5_homework.main
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import com.example.class5_homework.bookmark.BookmarkModel
import com.example.class5_homework.todo.home.TodoModel
class SharedViewModel : ViewModel() {
val liveTodoModel : MutableLiveData<TodoModel> = MutableLiveData()
val liveBookMarkModel : MutableLiveData<BookmarkModel> = MutableLiveData()
// 이 viewmodel은 액티비티 뷰 모델
// 액티비티가 파괴될 때 파괴가 됨
// 프래그먼트가 다른 화면에 존재한다고 할 때
// 북마크 프래그먼트가 파괴되었을 때
// 거기에 대응되는 뷰 모델도 제거가됨
// 즉 여기서 list로 관리한다면 불필요한 데이터가 남게되며 같은 데이터 두 개가 존재하게된다
}
해당 뷰 모델은 간단한 매개체 같은 역활로
Todofragment에서 livedata를 업데이트해주면 bookmarkfragment에서 해당 데이터를 옵저빙하다 감지해서 add하는 형식으로 작동할 계획이다.
또한 bookmarfragment에서는 bookmarklivedata를 업데이트 해주며 todofragment는 해당 데이터를 옵저빙을 하여 감지해서 값을 바꿔줄 설계를 진행하고 있다.
뷰모델에 관해서는 아직 이해도가 무척이나 낮아서 해당 과정이 힘들지만
어떻게든 한 번은 구현해볼 생각이다.
참고 블로그
https://undeadkwandoll.tistory.com/86?category=923703
AAC_ViewModel2
프래그먼트 간 데이터 공유 Activity에 포함된 둘 이상의 프래그먼트는 흔히 서로 커뮤니케이션 한다고 알려져 있다. 사용자가 목록에서 항목을 선택하는 프래그먼트와 선택된 항목의 컨텐츠를
undeadkwandoll.tistory.com