2

我有一个现有的 android java 项目,我正在为 DI 介绍 Koin。

在我的活动中,我一直在使用

private Lazy<DeckActivityViewModel> viewModel = inject(DeckActivityViewModel.class);

我想在多个片段之间共享视图模型,所以想知道是否有一个等效于“by sharedViewModel()”的java来这样做?

4

2 回答 2

0

Java 不支持属性委托,而 koin 使用属性委托来提供inject(),viewModel()sharedViewModel(). 所以,答案是你不能在java中使用它。

于 2019-07-15T11:58:22.047 回答
0

对于您的 Java Fragment,必须使用sharedViewModelgetSharedViewModel来自SharedViewModelCompat

 private Lazy<DeckActivityViewModel> viewModel = SharedViewModelCompat.sharedViewModel(this, DeckActivityViewModel.class);
于 2020-11-17T10:37:49.593 回答