Как активировать экземпляр ViewModel в 2020/21 году?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как активировать экземпляр ViewModel в 2020/21 году?

Сообщение Anonymous »

Я новичок в шаблоне 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);


Подробнее здесь: https://stackoverflow.com/questions/599 ... in-2020-21
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»