ViewModelProviders устарела в 1.1.0

Глядя на документы Google для ViewModelони показывают приведенный ниже пример кода о том, как получить ViewModel:

val model = ViewModelProviders.of(this).get(MyViewModel::class.java)

При использовании последней зависимости android.arch.lifecycle:extensions:1.1.1 такого класса нет ViewModelProviders,

Переход к документации для ViewModelProvidersЯ увидел комментарий:

Этот класс устарел на уровне API 1.1.0. Используйте ViewModelProvider.AndroidViewModelFactory

Проблема в том, что при попытке использовать ViewModelProvider.AndroidViewModelFactoryне может найти эквивалент of метод, чтобы получить экземпляр ViewModel,

Что я пытался сделать:

ViewModelProvider.AndroidViewModelFactory.getInstance(application).create(PlayerViewHolder::class.java)

Отсюда и название метода createЯ получаю новый экземпляр ViewModel каждый раз, когда я его называю, но это не то, что мне нужно.

Любые идеи, что замена устаревшего кода выше?

32 ответа

Если у вас есть эта реализация

'implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'

Попробуй использовать viewModel = MainViewModel()

Это должно работать так

 viewModel = ViewModelProviders.of(this@MainActivity).get(MainActivityViewModel::class.java)