试图通过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
子类的实例