我是mvvm模式的新手。我为主要活动创建了一个ViewModel。现在,我想在主活动中获取ViewModel的实例。
此处有关Stackoverflow的大多数教程和答案建议使用ViewModelProviders.of(...
,但已弃用。
因此,根据关于stackoverflow的这个问题:onCreate中的ViewModelProviders is deprecated in 1.1.0主要活动,我执行以下操作(并且我发誓我已经运行了它: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);
ViewModel viewModel = ViewModelProviders.of(this).get(ViewModel.class);
Android支持库版本已弃用。因此,您需要确保导入Androidx。并且您需要在Gradle文件中实现androidx依赖。