我将Android的导航架构组件集成到我的应用中。我在将数据传递到活动片段的开头时遇到了一些问题,所以我听到了这个答案:Navigation Architecture Component- Passing argument data to the startDestination。
逻辑对我来说似乎很合理,但我正在努力确定如何实际获取NavHostFragment。 Elliot Shrock使用了这一行 -
val navHostFragment = navFragment as NavHostFragment
但是我还没有找到可用的Java等价物。
我尝试使用我的navHost片段
getSupportFragmentManager().findFragmentById(R.id.[mynavhostid])
但此命令返回null。有什么想法吗?
答案 0 :(得分:1)
我先解决了包含NavHost的视图,然后使用supportFragmentManager来获取navHost片段并传入我的默认args。
希望Google的Android团队在未来为此提供更清晰的解决方案。
答案 1 :(得分:1)
请注意,由于某些原因,调试器有时会为NavHostFragment返回null,在该处代码实际上可以毫无问题地找到它。我不知道为什么,但是它可能占用了我3个小时的时间,请通过打印或使用片段确保它实际上为空!
答案 2 :(得分:0)
你正在努力的代码是kotlin片段:
val navHostFragment = navFragment as NavHostFragment
此代码段的等效Java代码是:
NavHostFragment navHostFragment = (NavHostFragment) findViewById(R.id.navFragment);
答案 3 :(得分:0)
这东西对我有用
val navHostFragment = nav_host_fragment as NavHostFragment
答案 4 :(得分:0)
实际上,请验证XML中的NavHostFragement ID是否与您在代码中引用的ID匹配。