Shared ViewModel: 안드로이드 프래그먼트와 활동 간에 데이터를 공유하는 현대적인 방법

Android 개발에서 개발자는 프래그먼트와 활동 간에 데이터를 공유해야 하는 상황에 여러 번 직면합니다. 따라서 다음과 같이 프래그먼트와 활동 간에 데이터를 공유하는 여러 가지 방법이 있습니다.
  • 조각/활동을 교체하는 동안 번들로 묶음
  • 인터페이스 사용
  • 공유 보기 모델

  • 프래그먼트/활동 간에 데이터를 공유하는 가장 간단한 방법인 공유 viewModel부터 시작하겠습니다.

    viewModel이란 무엇이며 viewModel의 책임
    ViewModel 클래스는 수명 주기를 의식한 방식으로 UI 관련 데이터를 저장하고 관리하도록 설계되었습니다. ViewModel 클래스는 Fragment 간의 데이터 공유 인터페이스 역할을 합니다.
    ViewModel 수명 주기는 데이터를 유지하고 조각이 교체되더라도 활성 상태를 유지하는 데 도움이 됩니다.


    공유 보기 모델
    공유 뷰 모델은 일반 뷰 모델일 뿐이지만 데이터 보유 동작과 뷰 모델의 수명 주기는 공유 뷰 모델을 만드는 데 도움이 됩니다.
    호출자 프래그먼트가 파괴되더라도 수명 주기에 따라 데이터를 사용할 수 있으며 다른 프래그먼트에 대해 해당 데이터를 가져올 수 있습니다.



    예시

    발신자 조각

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
            super.onViewCreated(view, savedInstanceState)
            model = ViewModelProvider(requireActivity()).get(SharedViewModel::class.java)
            button.setOnClickListener { model.sendMessage("Techno Learning") }
        }
    


    수신기 조각

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
            super.onViewCreated(view, savedInstanceState)
            val model = ViewModelProvider(requireActivity()).get(SharedViewModel::class.java)
            model.message.observe(viewLifecycleOwner, Observer {
                textViewReceiver.text = it
            })
        }
    


    주의: 동일한 소유자를 사용하여 SharedViewModel을 만듭니다.

    힘내 저장소 링크

    Conclusion
    We learned about Shared ViewModel in Android to communicate with other fragments. Hope you enjoyed this blog.

    Happy Learning

    좋은 웹페이지 즐겨찾기