假设我们有两个片段:MainFragment
和SelectionFragment
。第二个是用于选择某个对象,例如整数。接收来自此第二片段的结果有不同的方法,如回调、总线等。
现在,如果我们决定使用导航架构组件来导航到第二个片段,我们可以使用以下代码:
NavHostFragment.findNavController(this).navigate(R.id.action_selection, bundle)
当然,bundle
是 Bundle
的一个实例。正如您所看到的,我们无法访问 SelectionFragment
,因此无法在其中放置回调函数。问题是,如何使用导航架构组件接收结果?
SelectionFragment
直接或间接地更新共享的ViewModel
,而MainFragment
则订阅以了解该ViewModel
中的更改。 - CommonsWareViewModel
。 - Nominalista