Я новичок в модели mvvm. Я создал ViewModel для основной деятельности. Теперь я хочу получить экземпляр ViewModel в основной деятельности.
Большинство учебников и ответов здесь, в Stackoverflow, предлагают использовать ViewModelProviders.of(...
, но это не рекомендуется.
Итак, в соответствии с этим вопросом о stackoverflow: ViewModelProviders устарела в 1.1.0 основное действие в onCreate, я делаю следующее (и могу поклясться, что он уже запущен): mainActivityViewModel = new ViewModelProvider(this).get(MainActivityViewModel.class);
Однако я получаю сообщение об ошибке, что подходящий конструктор не найден.
error: no suitable constructor found for ViewModelProvider(MainActivity)
В качестве альтернативы, чтобы прояснить, что MainActivity должен быть ViewModelStoreOwner, я создал переменную ViewModelStoreOwner vmso = this;
и поместил эту переменную в конструктор следующим образом: mainActivityViewModel = new ViewModelProvider(vmso).get(MainActivityViewModel.class);