首页 > 解决方案 > 使用 Android 导航组件将数据传回之前的 Fragment

问题描述

想象一下,FragmentAFragmentB单击按钮开始。传递一些参数FragmenB非常简单:

 val action = FragmentADirections.actionToFragmentB("some text")
 findNavController().navigate(action)

但是,当用户导航离开时,有没有办法将数据从FragmentBto传递?换句话说,when被背压破坏。FragmentAFragmentBFragmentB

标签: android

解决方案


在您的导航 UI xml 中:

   <fragment
        android:id="@+id/FragmentB"
        android:name="com.example.FragmentB"
        android:label="FragmentB"
        tools:layout="@layout/FragmentA">
        <action
            android:id="@+id/action_FragmentB_to_FragmentA"
            app:destination="@id/FragmentA" />
    </fragment>

就像您想使用一些参数从FragmentB导航回FragmentA一样,请使用以下命令:

        findNavController().navigate(
            R.id.action_FragmentB_to_FragmentA,
            bundleof("key" to <your_value>) // example: 100 (Int value)
            )

然后你可以在你的FragmentA中使用或者如果你通过可以得到它等等。arguments?.getInt("key")Stringarguments?.getString("str_key")


推荐阅读