android - 错误:没有找到适合方法 ViewModelProviders.of(Fragment,Factory) 的方法
问题描述
试图ViewModel
通过ViewModelProviers.of()
我的活动提供。
我的活动扩展AppCompatActivity
了,但我仍然看到这个错误:
错误:没有找到适合的方法 of(StartActivity,StartViewModelFactory) 方法 ViewModelProviders.of(Fragment,Factory) 不适用(参数不匹配;StartActivity 无法转换为 Fragment)方法 ViewModelProviders.of(FragmentActivity,Factory) 不适用(参数不匹配;StartActivity 无法转换为 FragmentActivity)
Dagger 2 提供了依赖注入。下面是我的 Activity 类 StartActivity:
public class StartActivity extends AppCompatActivity {
@Inject
StartViewModelFactory startViewModelFactory;
StartModelView startModelView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
AndroidInjection.inject(this);
super.onCreate(savedInstanceState);
startModelView = ViewModelProviders.of(this, startViewModelFactory).
get(StartViewModel.class);
}
ViewModelProviders.of()
如果我理解正确,如果它们扩展 AppCompatActivity 或 Fragment ,您应该能够在方法中发送活动。但我得到这个错误。任何帮助,将不胜感激。
解决方案
你应该使用
.get(StartModelView.class);
并不是
.get(StartViewModelFactory.class);
android使用提供的工厂of()
来生成ViewModel
子类的实例
推荐阅读
- php - 'simplexml' php 到 mysql 数据库循环仅返回第一个元素
- java - 按特定类型的 HTML 标记拆分字符串
- aws-api-gateway - 限制对特定应用客户端的 API 访问
- crashlytics - 在“导出 ID”中包含设备信息
- dask - Dask-Submit 未命中 Dask Remote pod
- angular - 带有延迟子模块的延迟加载模块不使用带有导航栏和路由器出口的 AppComponent
- html - 如何在量角器 e2e 测试中从列表(表)中获取行?
- rust - Cargo 是否可以下载并捆绑同一个 crate 的多个版本?
- android - 无法从 Android 上 Unity 中的 Firebase 快照获取“空”值
- agora.io - 视频通话不便。集市。最好的解决方案?