I have a BaseFragment and BaseViewModel. I created HomeFragment that extended from BaseFragment. Now I observe a LiveData of BaseViewModel but observing data is not working.
// BaseFragment
abstract class BaseFragment<VDB: ViewDataBinding, VM: BaseViewModel>: Fragment() {
lateinit var mBinding: VDB
lateinit var mViewModel: VM
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val parameterizedType = javaClass.genericSuperclass as? ParameterizedType
@Suppress("UNCHECKED_CAST")
val vmClass = parameterizedType?.actualTypeArguments?.getOrNull(1) as? Class<VM>?
if (vmClass != null) mViewModel = ViewModelProvider(this)[vmClass]
}
......
}
//BaseViewModel
abstract class BaseViewModel(application: Application) : AndroidViewModel(application) {
val isMeet = MutableLiveData(true)
//.... code to change isMeet ....
//HomeFragment
class MainFragment: BaseFragment<FragmentMainBinding, MainViewModel>() {
override fun onResume() {
super.onResume()
mViewModel.isMeet.observe(viewLifecycleOwner) {
Log.d(TAG, "setupViews: a $it") // there isn't any happened
}
Log.d(TAG, "onResume: ")
}