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 子类的实例