android fragment navigation startDestination 如何传递参数
时间: 2024-05-06 19:18:29 浏览: 150
在 Android Fragment Navigation 中,可以通过使用 `setArguments()` 方法将参数传递给目标 Fragment。具体步骤如下:
1. 在导航图中,在目标 Fragment 的 `<fragment>` 标签中添加一个 `<argument>` 标签,定义参数的名称和类型。
```xml
<fragment
android:id="@+id/destination_fragment"
android:name="com.example.myapp.DestinationFragment"
android:label="Destination Fragment">
<argument
android:name="myArgument"
app:argType="string" />
</fragment>
```
2. 在源 Fragment 中创建 Bundle 对象,并将参数添加到 Bundle 中。
```kotlin
val bundle = Bundle()
bundle.putString("myArgument", "Hello World!")
```
3. 创建 NavDirections 对象,将其传递给 `navigate()` 方法。
```kotlin
val action = SourceFragmentDirections.actionSourceFragmentToDestinationFragment().setArguments(bundle)
findNavController().navigate(action)
```
4. 在目标 Fragment 中,使用 `arguments` 属性获取传递的参数。
```kotlin
val myArgument = arguments?.getString("myArgument")
```
这样就成功地将参数传递给了目标 Fragment。注意,在使用 `arguments` 属性获取参数时,需要对其进行空值判断,以避免空指针异常。
阅读全文