我有HomeFragment,其中包括RecyclerView。当我单击一个项目时,我想从navigation/home_navigation.xml
中的HomeFragment转到另一个navigation/dictionary_navigation.xml
中的DictionaryFragment,其中DictionaryFragment是 startDestination 。
我创建了一个嵌套navigation/dictionary_navigation.xml
图的新操作,因为我需要打开startDestination:
我不知道如何将我的数据正确传输到 DictionaryFragment ,但这是
HomeFragment
wordPackAdapter = PackAdapter(context, Utils.dictionaryPacks) {
val bundle = Bundle().apply {
putInt("packId", it.index)
}
navigate(R.id.action_homeFragment_to_dictionary_navigation, bundle)
}
DictionaryFragment
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val bundle = requireActivity().intent.extras <---- null
}
扩展名
fun BaseFragment.navigate(
resId: Int,
bundle: Bundle? = null,
navOptions: NavOptions? = null
) {
NavHostFragment.findNavController(this).navigate(resId, bundle, navOptions)
}
不起作用,因为 bundle为空。
我也使用SafeArgs插件,但据我所知,我不能将 DictionaryFragmentArgs.fromBundle()与startDestination一起使用。
如何正确执行此操作?
答案 0 :(得分:2)
我猜在DictionaryFragment上,您应该尝试使用“ getArguments()”来获取数据。