gpt4 book ai didi

android - 在 fragment 导航组件之间传递数据的更好方法?

转载 作者:行者123 更新时间:2023-12-03 21:03:10 24 4
gpt4 key购买 nike

在导航组件中的 fragment 之间传递数据很容易。说从 A 出发至B你刚刚设置argumentsSafeArgs你就完成了。

但是,从 B 传递数据时会变得很棘手返回 A .

根据documentation , 我们可以使用 SharedViewModel这很好用。但我正在寻找将数据传回 A 的更好方法。来自 B .

使用问题SharedViewModel是,您必须创建 SharedViewModel对于您需要传递数据的每个 fragment 对。

有什么建议么?如果您有任何可以想到的注释处理方法,非常欢迎您推荐。

最佳答案

如果您不想使用 SharedViewModel方式,您可以按照下一个方法:
1- 定义委托(delegate) 为您的Details Fragment . (这个委托(delegate)必须实现 SerializableParcelable :

interface DetailsFragmentDelegate: Serializable {
fun onSomething1(someData1: SomeData1)
fun onSomething2(someData2: SomeData2)
}
2- 添加代表给您的 Details Fragment nav_graph.xml 中的参数
3- 通过委托(delegate)给您的 Details Fragment当您通过 Base Fragment 导航到目的地时:
findNavController().navigate(
BaseFragmentDirections.actionBaseFragmentToDetailsFragment(
object: DetailsFragmentDelegate {
// override delegate methods

}
)
)
4- 获取代表 Details Fragment 中的参数并将数据传回您需要的任何地方:
....
delegate.onSomething1(data1)
....
delegate.onSomething2(data2)
....
我不确定是否有更好的方法,但是 它正在工作...

关于android - 在 fragment 导航组件之间传递数据的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56286907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com