例如,您可以发送整数值,或字符串或任何其他根据您的要求。我用整数作为例子
<fragment
android:id="@+id/flow_step_one_dest"
android:name="com.example.android.codelabs.navigation.FlowStepFragment"
tools:layout="@layout/flow_step_one_fragment">
<argument
android:name="flowStepNumber"
app:argType="integer"
android:defaultValue="1"/>
<action...>
</action>
val flowStepNumberArg = 1
val action = FragmentADirections.nextAction(flowStepNumberArg) //For Fragment A
//val action = FragmentCDirections.nextAction(flowStepNumberArg) //For Fragment C
findNavController().navigate(action)
在片段B中,你可以通过以下方式检索:
val safeArgs: FlowStepFragmentArgs by navArgs()
val flowStepNumber = safeArgs.flowStepNumber
如果尚未为safeArgs添加依赖项,则可以将其添加到项目级build.gradle
dependencies {
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navigationVersion"
//...
}
apply plugin: 'androidx.navigation.safeargs.kotlin'
Google's Codelab