首先,您需要将这样的参数添加到您的 navgraph.xml
<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>
然后,您必须像这样从源片段发送参数:
findNavController(this).navigate(SourceFragmentDirections.actionSourceToDestination(argument))
最后,您可以从目标片段中检索参数:
DestinationFragmentArgs.fromBundle(arguments!!).score
在上面的示例中,我发送了一个 int 类型的参数名称分数。你可以像这样发送任何类型的论点。如果您的参数不是原始类型,您还可以通过创建 Parcelable 模型类来发送该参数。
我很乐意为您提供任何其他信息。谢谢 :)