简体   繁体   English

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

[英]error: no suitable method found for method ViewModelProviders.of(Fragment,Factory)

Trying to provde ViewModel via ViewModelProviers.of() to my activity. 试图provde ViewModel通过ViewModelProviers.of()到我的活动。

My activity extends AppCompatActivity but I still see this error: 我的活动扩展了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) 错误:找不到适用于of(StartActivity,StartViewModelFactory)方法ViewModelProviders.of(Fragment,Factory)的合适方法(参数不匹配; StartActivity无法转换为Fragment)方法ViewModelProviders.of(FragmentActivity,Factory)不适用(参数不匹配; StartActivity无法转换为FragmentActivity)

Dependency Injection is provided with Dagger 2. Below is my Activity class StartActivity: 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);

}

If I understand correctly you should be able to send in an activity in ViewModelProviders.of() method if they extend AppCompatActivity or Fragment. 如果我正确理解,如果它们扩展了AppCompatActivity或Fragment,则应该能够在ViewModelProviders.of()方法中发送活动。 But I get this error. 但是我得到这个错误。 Any help would be appreciated. 任何帮助,将不胜感激。

you should be using 你应该使用

   .get(StartModelView.class);

and not 并不是

 .get(StartViewModelFactory.class);

the factory provided to of() is used by android to generate an instance of your ViewModel subclass android使用提供给of()的工厂来生成ViewModel子类的实例

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 ViewModelProviders.of(getActivity()) “无法解析(android.app.Activity)的方法” - ViewModelProviders.of(getActivity()) “Cannot resolve method of(android.app.Activity)” 直接实例化ViewModels,而不使用ViewModelProviders.of方法 - Instantiate ViewModels directly, without making use of ViewModelProviders.of method Android Studio,AndroidX,ViewModelProviders.of(this)上的“无法解析方法。” - Android Studio, AndroidX, “Cannot resolve method..” on ViewModelProviders.of(this) 错误找不到适合于add(int,Fragment)的方法 - Error No suitable method found for add(int, Fragment) ViewModelProviders.of(activity) 只接受片段或片段活动 - ViewModelProviders.of(activity) only accept fragment or fragmentactivity Kotlin 不理解 ViewModelProviders.of(activity ?: fragment) - Kotlin does not understand ViewModelProviders.of(activity ?: fragment) Android Gradle:错误找不到适合的替换方法 - Android Gradle: error no suitable method found for replace Android中“找不到合适的方法来替代”功能错误 - “No suitable method found to Override” function Error in Android 错误:找不到适合 add(int,int) 的方法 - Error: no suitable method found for add(int,int) 没有找到适合 into(Uri) 的方法 - No suitable method found for into(Uri)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM