美文网首页
Jetpack navigation : send parame

Jetpack navigation : send parame

作者: chenhongqi | 来源:发表于2020-06-28 00:40 被阅读0次

A是一个导航图,包含几个Fragment,B是一个子导航图,包含几个Fragment。

1.in A Activity
startActivity(
intentFor<BActivity>(
key to value
)
2.in B Activity
(1)
val navController = Navigation.findNavController(this, R.id.nav_host_fragment)
val inflater = navController.navInflater
val graph = inflater.inflate(R.navigation.member_list_navigation)
(2)
val bundle = Bundle()
bundle.putParcelable(key1, fetchArgFromAActivity())
val arg = NavArgument.Builder().setDefaultValue(bundle).build()
graph.addArgument(key2, arg)
(3)
navController.graph = graph
(4)
<fragment
android:id="@+id/navFragment"
android:name="androidx.navigation.fragment.NavHostFragment"
//app:graph="@navigation/nav_whatever"
app:defaultNavHost="true"
/>

3.in B Fragment
val value = (arguments?.get(key2) as Bundle).getParcelable<T>(key1)

it works, but really bother.

相关文章

网友评论

      本文标题:Jetpack navigation : send parame

      本文链接:https://www.haomeiwen.com/subject/pgibfktx.html