使用Android导航组件将数据传递回先前的片段

时间:2019-10-22 17:56:45

标签: android

想象一下,a会在单击按钮时启动FragmentA。将一些参数传递给FragmentB非常简单:

FragmenB

但是,当用户离开 val action = FragmentADirections.actionToFragmentB("some text") findNavController().navigate(action) 时,是否可以将数据从FragmentB传递到FragmentA?换句话说,当FragmentB由于反向按下而被破坏时。

2 个答案:

答案 0 :(得分:0)

在导航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)
            )

然后,您可以使用arguments?.getInt("key") just FragmentA 中接收自变量,或者如果您通过String也可以通过{{1} }等。

仅此而已。让我知道它是否有效。编码愉快。

答案 1 :(得分:-1)

检查NavigationResult库。这是一个很好的库,可以处理Android导航组件中的navigationUp

This文章介绍了如何使用该库