【发布时间】:2021-05-06 08:37:25
【问题描述】:
我有一个 String 类型 arg 从 NewCodeFragment 发送到 MainFragment。
如果我设置了默认值,则会收到“参数过多”错误。
如何设置默认值?我的理解是,如果我发送一个 arg,那么目标片段将接收 arg,否则它将接收默认值。错了吗?
问题代码:
navigationXML:
<argument
android:name="aArg"
app:argType="string"
app:nullable="true"
android:defaultValue="@null" />
fragment.class:
val aArg="abc"
// build error, it says too many args
this.findNavController().navigate(NewCodeFragmentDirections.actionNewCodeFragmentToMainFragment(aArg))
没有问题的代码:
navigationXML:
<argument
android:name="aArg"
app:argType="string"
app:nullable="true"/> // remove android:defaultValue="@null"
fragment.class:
val aArg="abc"
this.findNavController().navigate(NewCodeFragmentDirections.actionNewCodeFragmentToMainFragment(aArg))
另一个没问题的代码:
navigationXML:
<argument
android:name="aArg"
app:argType="string"
app:nullable="true"
android:defaultValue="@null" />
fragment.class:
val aArg="abc"
this.findNavController().navigate(NewCodeFragmentDirections.actionNewCodeFragmentToMainFragment()) // remove aArg
【问题讨论】:
标签: android kotlin android-safe-args