android - 使用 Android 导航组件将数据传回之前的 Fragment
问题描述
想象一下,FragmentA
从FragmentB
单击按钮开始。传递一些参数FragmenB
非常简单:
val action = FragmentADirections.actionToFragmentB("some text")
findNavController().navigate(action)
但是,当用户导航离开时,有没有办法将数据从FragmentB
to传递?换句话说,when被背压破坏。FragmentA
FragmentB
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)
)
然后你可以在你的FragmentA中使用或者如果你通过可以得到它等等。arguments?.getInt("key")
String
arguments?.getString("str_key")
推荐阅读
- c# - 如何在 C# Entity Framework Core 中使用类作为字段的类的构造函数?
- php - 已弃用:必需参数 $to_addr 遵循可选参数
- java - 杰克逊序列化重复字段与@JsonAnyGetter
- python - 如何将 OGG_OPUS 输入音频流转换为 Google Speech-to-Text API 可接受的字节流格式?
- reactjs - 我怎样才能在同一个项目中拥有下一个 js 和 react 应用程序?
- c++ - Clang MatchResult 没有绑定 AST 节点?
- linux - 在期望脚本中通过 ssh/telnet(甚至是 shell)传输二进制数据时出错
- html - 如何调整搜索栏占位符文本的位置
- vue.js - import Vue from 'vue' 报错了
- java - 为什么 Selenium 的 ExpectedConditions.elementToBeClickable(By.xpath(xPath))) 返回一个字符串?