错误:找不到适用于(Fragment,Factory)的方法ViewModelProviders.的方法



试图通过ViewModelProviers.of()向我的活动证明ViewModel

我的活动扩展了AppCompatActivity,但我仍然看到这个错误:

错误:找不到适合的方法的(StartActivity,StartViewModelFactory(方法(Fragment,Factory(的ViewModelProviders.不适用(参数失配;StartActivity无法转换为Fragment(方法(FragmentActivity,Factory(的ViewModelProviders.不适用(参数不匹配;StartActivity无法转换为碎片活性(

依赖注入是Dagger 2提供的。下面是我的活动类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()方法中发送活动。但我犯了这个错误。如有任何帮助,我们将不胜感激。

您应该使用

.get(StartModelView.class);

而不是

.get(StartViewModelFactory.class);

提供给of()的工厂由android用来生成ViewModel子类的实例

相关内容

  • 没有找到相关文章

最新更新