【发布时间】:2019-08-07 03:32:21
【问题描述】:
假设我有两个片段:
- 第一个片段
- 第二个片段
用户会在 FirstFragment 中提示一些数据,我想将其中一些数据分享给 SecondFragment。我正在使用 Android 的 ViewModel 和 Jetpack 的 Navigation。传递数据的最佳方式是什么?
视图模型
在 viewModel 的情况下,如果我像这样实例化 viewModel:
MyViewModel viewModel = ViewModelProviders.of(getActivity()).get(MyViewModel.class);
在每个片段中,我可以创建一个名为 setSharedData 的方法并从 FirstFragment 调用它,并创建到 getSpecificData 的方法并在我的 SecondFragment 中根据需要调用它们。
目标参数
如果我使用 Jetpack 的 Navigation,我可以使用 destination arguments with safe-args 共享数据,将其设置在 Fragment 之间的操作中。
你认为哪个选项最好?您认为这些是更适合不同情况的不同解决方案吗?在那种情况下,我应该在哪种情况下使用哪种方法?
【问题讨论】:
-
哪种情况下最好的方法?
-
在我上面描述的例子中。另外,我想知道对于其他一些可能的情况,哪个选项更好
标签: android android-fragments android-navigation android-viewmodel