Я пытаюсь поделиться ViewModel между моей деятельностью и моим фрагментом. Моя ViewModel содержит report
, который является сложным объектом, который я не могу сериализовать.
protected val viewModel: ReportViewModel by lazy {
val report = ...
ViewModelProviders.of(this, ReportViewModelFactory(report)).get(ReportViewModel::class.java)
}
Теперь я пытаюсь получить доступ к модели представления во фрагменте, но я не хочу передавать всю фабрикупараметры снова.
Как указано в документации ViewModelProvider.get
:
Возвращает существующую модель представления или создает новую в области действия
Я хочучтобы получить доступ к экземпляру ViewModel, определенному в упражнении, поэтому я попытался выполнить следующее, но он логически завершился сбоем, поскольку модель не имеет пустого конструктора:
protected val viewModel: ReportViewModel by lazy {
ViewModelProviders.of(requireActivity()).get(ReportViewModel::class.java)
}
Как получить доступ к его «заводским» моделям представления вфрагмент? Должны ли мы передать фабрику на фрагмент?
Спасибо!