大家好,我有我的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这个。