error: no suitable method found for method ViewModelProviders.of(Fragment,Factory)
error: no suitable method found for method ViewModelProviders.of(Fragment,Factory)
正在尝试通过 ViewModelProviers.of()
向我的 activity 提供 ViewModel
。
我的 activity 扩展了 AppCompatActivity
但我仍然看到这个错误:
error: no suitable method found for
of(StartActivity,StartViewModelFactory) method
ViewModelProviders.of(Fragment,Factory) is not applicable (argument
mismatch; StartActivity cannot be converted to Fragment) method
ViewModelProviders.of(FragmentActivity,Factory) is not applicable
(argument mismatch; StartActivity cannot be converted to
FragmentActivity)
Dagger 2 提供了依赖注入。下面是我的 Activity class 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);
}
如果我理解正确的话,如果它们扩展了 AppCompatActivity 或 Fragment,您应该能够在 ViewModelProviders.of()
方法中发送 activity。但是我得到了这个错误。任何帮助将不胜感激。
你应该使用
.get(StartModelView.class);
而不是
.get(StartViewModelFactory.class);
提供给 of()
的工厂被 android 用于生成您的 ViewModel
子类的实例
正在尝试通过 ViewModelProviers.of()
向我的 activity 提供 ViewModel
。
我的 activity 扩展了 AppCompatActivity
但我仍然看到这个错误:
error: no suitable method found for of(StartActivity,StartViewModelFactory) method ViewModelProviders.of(Fragment,Factory) is not applicable (argument mismatch; StartActivity cannot be converted to Fragment) method ViewModelProviders.of(FragmentActivity,Factory) is not applicable (argument mismatch; StartActivity cannot be converted to FragmentActivity)
Dagger 2 提供了依赖注入。下面是我的 Activity class 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);
}
如果我理解正确的话,如果它们扩展了 AppCompatActivity 或 Fragment,您应该能够在 ViewModelProviders.of()
方法中发送 activity。但是我得到了这个错误。任何帮助将不胜感激。
你应该使用
.get(StartModelView.class);
而不是
.get(StartViewModelFactory.class);
提供给 of()
的工厂被 android 用于生成您的 ViewModel
子类的实例