首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置和检索NavGraph.xml中设置的参数?

如何设置和检索NavGraph.xml中设置的参数?
EN

Stack Overflow用户
提问于 2019-06-07 17:55:57
回答 1查看 894关注 0票数 0

我知道Android开发人员关于Android导航的文章:

https://developer.android.com/guide/navigation/navigation-pass-data

https://developer.android.com/guide/navigation/navigation-getting-started

这两篇文章都没有描述如何在源片段中设置NavGraph.xml中定义的参数值,以及如何在目标片段中检索它们?你能给我一个提示吗?

我还知道将OnClickListener设置为导航到不同目的地的按钮的方法Navigation.createOnClickListener(int ID,Bundle args)。但是捆绑包args与我在NavGraph.xml中定义的参数类型不同。难到不是么?

EN

回答 1

Stack Overflow用户

发布于 2019-06-13 21:44:37

首先,需要将如下所示的参数添加到navgraph.xml中

代码语言:javascript
复制
<fragment
    android:id="@+id/score_destination"
    android:name="com.example.android.guesstheword.screens.score.ScoreFragment"
    android:label="destination_fragment"
    tools:layout="@layout/destination_fragment">
    <action
        android:id="@+id/action_restart"
        app:destination="@+id/game_destination"
        app:enterAnim="@anim/slide_in_right"
        app:exitAnim="@anim/slide_out_left"
        app:popEnterAnim="@anim/slide_in_right"
        app:popExitAnim="@anim/slide_out_lef />
    <argument
        android:name="score"
        android:defaultValue="0"
        app:argType="integer" />
</fragment>

然后,您必须像这样从您的源代码片段中发送参数:

代码语言:javascript
复制
findNavController(this).navigate(SourceFragmentDirections.actionSourceToDestination(argument))

最后,您可以从目标片段中检索参数:

代码语言:javascript
复制
DestinationFragmentArgs.fromBundle(arguments!!).score

在上面的示例中,我发送了一个int类型的参数名score。你可以像这样发送任何类型的参数。如果参数不是基元类型,也可以通过创建Parcelable模型类来发送该参数。

我很乐意为您提供任何其他信息。谢谢您:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56492079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档