Jetpack-WanAndroid icon indicating copy to clipboard operation
Jetpack-WanAndroid copied to clipboard

dataBinding 与ViewModel 绑定 如何实现

Open jackerjin opened this issue 5 years ago • 2 comments

报错 Cannot create an instance of class com.wanandroid.module_home.HomeViewModel,好像 val type = (this.javaClass.genericSuperclass as ParameterizedType).actualTypeArguments mViewModel = ViewModelProvider.AndroidViewModelFactory.getInstance(application) .create(type[0] as Class<T>) 拿不到class类,我想用ViewModel去实现双向绑定,在BaseActivity 或者BaseFragment 不太好拿到这个class

jackerjin avatar Aug 17 '20 09:08 jackerjin

没太理解 你要做什么

winlee28 avatar Aug 18 '20 06:08 winlee28

没太理解 你要做什么 是这样 我想让 dataBinding 持有ViewModel ,mdataBinding.viewModel=mViewModel ,通过反射拿不到这个mViewModel ,通过反射也拿不到koin用的这个ViewModel 所以我只能改成这样写了, private val homeViewModel by viewModel<HomeViewModel>() override fun initViewModel() { mViewDataBinding.run { viewModel = homeViewModel } },这样的话每个类里都有重复去写,网上查了也没有太好的方法

jackerjin avatar Aug 18 '20 07:08 jackerjin