在官方的例子中,有这样一段代码
model = ViewModelProviders.of(this).get(XXXViewModel.class);
但在实际开发中lifecycle-viewmodel:2.0.0中并不存在,该类被弃用,
并且多了一个Factory入参,需要新的方式去创建model,在acitivity中创建
userModel=new ViewModelProvider(this,
ViewModelProvider.AndroidViewModelFactory(getApplication())).get(XXXModel.class);
在fragment中this需要getActivity,注意点才起作用
userModel=new ViewModelProvider(getActivity(),
ViewModelProvider.AndroidViewModelFactory(requireActivity().getApplication())).get(XXXModel.class);
kotlin语法的写法:
使用by的属性委托
与ctivity 中的两个或更多 Fragment 需要相互通信是一种很常见的情况的写法 private val model: xxxViewModel by activityViewModels()该界面使用准备
private val model: xxxViewModel by viewModels()