簡體   English   中英

使用 Android 導航組件將數據傳回之前的片段

[英]Passing data back to previous Fragment with Android Navigation Components

想象一下, FragmentA在單擊按鈕時啟動FragmentB 將一些參數傳遞給FragmenB非常簡單:

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

但是,當用戶離開FragmentB時,有沒有辦法將數據從FragmentB傳遞到FragmentA 換句話說,當FragmentB由於后退而被銷毀時。

在您的導航 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 arguments?.getInt("key")在你的FragmentA中接收參數,或者如果你傳遞String可以用arguments?.getString("str_key")等獲取它。

想象一下, FragmentA在單擊按鈕時啟動FragmentB 將一些 arguments 傳遞給FragmenB非常簡單:

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

但是當用戶導航離開FragmentB時,有沒有辦法將數據從FragmentB傳遞到FragmentA 換句話說,當FragmentB因背壓而被破壞時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM