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

时间:2018-11-21 14:37:32

标签: android mvvm viewmodel dagger-2

尝试通过ViewModel向我的活动提供ViewModelProviers.of()

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

  

错误:找不到适合的方法   (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);

}

如果我正确理解,如果它们扩展了AppCompatActivity或Fragment,则应该可以使用ViewModelProviders.of()方法发送活动。但是我得到这个错误。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您应该使用

getIdToken(true)

不是

   .get(StartModelView.class);

提供给 .get(StartViewModelFactory.class); 的工厂被android用来生成of()子类的实例