我是mvvm模式的新手。我为主要活动创建了一个ViewModel。现在,我想在主活动中获取ViewModel的实例。
有关Stackoverflow的大多数教程和答案都建议使用ViewModelProviders.of(...
,但这已被淘汰。
因此,根据关于stackoverflow的这个问题:在onCreate的1.1.0主要活动中不赞成使用ViewModelProviders,我执行以下操作(并且我发誓我已经运行了它):mainActivityViewModel = new ViewModelProvider(this).get(MainActivityViewModel.class);
但是,我收到一个错误消息,告诉我没有找到合适的构造函数。
error: no suitable constructor found for ViewModelProvider(MainActivity)
另外,为了明确说明,MainActivity应该是ViewModelStoreOwner,我创建了一个变量ViewModelStoreOwner vmso = this;
,然后将该变量放入构造函数中,如下所示:mainActivityViewModel = new ViewModelProvider(vmso).get(MainActivityViewModel.class);
您应该将gradle文件更新为:
实现'androidx.lifecycle:lifecycle-extensions:2.2.0'
由于此更改,您可以将Activity传递给您提到的构造函数:
mainActivityViewModel = new ViewModelProvider(this).get(MainActivityViewModel.class);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句