В настоящее время я обновляю версию androidx.lifecycle:lifecycle-extensions
с 2.2.0-alpha01
до 2.2.0
, и это показывает, что ViewModelProviders устарел. Итак, каков альтернативный способ использования ViewModelProviders в kotlin?
ViewModelProviders устарел в версии 2.2.0.
Ответы (3)
Как сказано в документации, теперь вы можете просто использовать ViewModelProvider
конструкторы напрямую. В основном это должно быть связано с изменением ViewModelProviders.of(
на ViewModelProvider(
, но вы можете увидеть полный список того, какие именно новые методы соответствуют каким старым, в документацию.
В Kotlin вы также можете использовать делегат свойства by viewModels()
в ваших Activity
/Fragment
для получения отдельных ViewModel
. Например:
val model: MyViewModel by viewModels()
person
Ryan M
schedule
21.02.2020
старая версия
var viewModel = ViewModelProviders.of(this).get(BaseViewModel::class.java)
Теперь альтернатива
В Java
viewModel = ViewModelProvider(this).get(BaseViewModel.class);
В Котлине
var viewModel = ViewModelProvider(this).get(BaseViewModel::class.java)
Ссылки — https://developer.android.com/reference/androidx/lifecycle/ViewModelProviders а>
person
ahks
schedule
05.05.2020
в Java viewModel = new ViewModelProvider(this).get(BaseViewModel.class);
- person Max Gabderakhmanov; 10.08.2020
Например, если вы используете более старую версию.
MyViewModel myViewModel = new ViewModelProviders.of(this, new MyViewModelFactory(this.getApplication(), "Your string parameter")).get(MyViewModel.class);
Например, для последней версии
MyViewModel myViewModel = new ViewModelProvider(this, viewModelFactory).get(MyViewModel.class);
ИЛИ используйте ViewModelStore ссылка
MyViewModel myViewModel = new ViewModelProvider(getViewModelStore(), viewModelFactory).get(MyViewModel.class);
person
Chirag Bhuva
schedule
08.04.2020