尝试通过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()
方法发送活动。但是我得到这个错误。任何帮助将不胜感激。
答案 0 :(得分:1)
您应该使用
getIdToken(true)
不是
.get(StartModelView.class);
提供给 .get(StartViewModelFactory.class);
的工厂被android用来生成of()
子类的实例