ошибка: не найден подходящий метод для метода ViewModelProviders.of (Fragment, Factory) - PullRequest
0 голосов
/ 21 ноября 2018

Попытка предоставить ViewModel через ViewModelProviers.of() моей активности.

Моя активность распространяется AppCompatActivity, но я все еще вижу эту ошибку:

ошибка: нет подходящего методанайденный для of (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);

}

Если я правильно понимаю, вы сможете отправлять действияв методе ViewModelProviders.of(), если они расширяют AppCompatActivity или Fragment.Но я получаю эту ошибку.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 21 ноября 2018

вы должны использовать

   .get(StartModelView.class);

, а не

 .get(StartViewModelFactory.class);

фабрика, предоставленная для of(), используется Android для генерации экземпляра вашего ViewModel подкласса

...