gpt4 book ai didi

android - 如何在使用导航架构时将数据传递给第一个 fragment ?

转载 作者:行者123 更新时间:2023-11-29 00:57:50 24 4
gpt4 key购买 nike

我正在尝试使用 NavHostFragment 将一组对象实例从我的主要 Activity 向下传递到其他 fragment 链中的第一个 fragment 。我已经尝试了各种方法,但是一旦到达第一个 fragment ,包似乎总是空的。

这是我启动 NavHostFragment 的方式(frameContainer 是我的布局 xml 中的框架容器元素)

NavHostFragment navHost = NavHostFragment.create(R.navigation.claim_nav_graph);
getSupportFragmentManager().beginTransaction()
.replace(R.id.frameContainer, navHost)
.setPrimaryNavigationFragment(navHost)
.commit();

文档说有 2 个不同的 .create 函数,您可以将其中一个作为一个包传递第二个参数,但 Android Studio 不允许我使用这个版本。

有人有什么想法吗?

提前致谢!

最佳答案

这似乎是 NavHostFragment 的一个缺陷,将数据向下传递到第一个 fragment 似乎是不可能的,因为 Bundle 您可以设置为create 函数的第二个参数在此过程中被覆盖。

最后,我通过在 Activity 的第一个 fragment 中构建 bundle 来解决这个问题。我能够使用以下内容访问 Activity Intent 属性。

// Kotlin
activity.intent?.extras?.getBundle(KEY_BUNDLE_ID)
// Java
getActivity().getIntent().getBundleExtra(KEY_BUNDLE_ID)

在这种情况下,这对我来说已经足够了,但如果可能的话,那就太好了

关于android - 如何在使用导航架构时将数据传递给第一个 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53371979/

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