大家好,我有我的Activity MainActivity.kt

还有一个ViewModel MainActivityViewModel.kt
我想观察我的实时数据到我的3个不同片段。

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)
}

但是我的观察者只从事 Activity 而不是碎片。

最佳答案

嘿,您所做的一切都很棒,除了您应该在片段类中对此使用requireActivity()之外。

确保所有片段都已附加到viewModel持有 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)
}

这将帮助您解决问题。

有关更多详细信息,请view这个。

10-04 13:59