Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to observe data from live data android on Three different Fragment

I have my Activity MainActivity.kt .

And and one ViewModel MainActivityViewModel.kt

And I want to observe my live data to my 3 different fragments.

class MainActivity{
      
      lateinit var mainActivityViewModel: MainActivityViewModel
      ...

     mainActivityViewModel = ViewModelProviders.of(this, viewModelFactory).get(MainActivityViewModel::class.java)
}

class MainFragmentOne{
      
      lateinit var mainActivityViewModel: MainActivityViewModel
      ...

     mainActivityViewModel = ViewModelProviders.of(this, viewModelFactory).get(MainActivityViewModel::class.java)
}

But my observer only work on activity not on the fragments.

like image 492
Hello world Avatar asked Oct 22 '25 08:10

Hello world


1 Answers

Hey there you are doing everything greate except one thing you should use requireActivity() instead on this in your fragment class.

Make sure your all fragment are attached to your viewModel holding Activity.

class MainActivity{

      lateinit var mainActivityViewModel: MainActivityViewModel
      ...

     mainActivityViewModel = ViewModelProviders.of(this, viewModelFactory).get(MainActivityViewModel::class.java)
}

class MainFragmentOne{

      lateinit var mainActivityViewModel: MainActivityViewModel
      ...

     mainActivityViewModel = ViewModelProviders.of(requireActivity(), viewModelFactory).get(MainActivityViewModel::class.java)
}

This will help you solve your issue.

For further detail view this.

like image 110
Arbaz Pirwani Avatar answered Oct 24 '25 21:10

Arbaz Pirwani



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!