从fragment跳转到新的fragment上并传值
时间: 2023-11-19 11:13:46 浏览: 85
要从一个 Fragment 跳转到另一个 Fragment 并传值,可以通过以下步骤实现:
1. 创建要跳转到的 Fragment,并定义需要传递的数据变量。
```kotlin
class NextFragment : Fragment() {
private var data: String? = null
companion object {
fun newInstance(data: String): NextFragment {
val fragment = NextFragment()
fragment.data = data
return fragment
}
}
//...
}
```
2. 在当前 Fragment 中创建一个跳转函数,并使用 Bundle 传递数据。然后将该 Bundle 附加到 FragmentTransaction 中的下一个 Fragment 中。
```kotlin
private fun goToNextFragment(data: String) {
val fragment = NextFragment.newInstance(data)
val transaction = fragmentManager?.beginTransaction()
transaction?.replace(R.id.container, fragment)
transaction?.commit()
}
```
3. 当需要在当前 Fragment 中调用该函数时,只需传递要传递的数据即可。
```kotlin
goToNextFragment("Hello, next fragment!")
```
4. 在跳转到的 Fragment 中,可以使用 getArguments() 方法获取传递的数据。
```kotlin
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val data = arguments?.getString("data")
//...
}
```
注意:这里的 R.id.container 需要替换为你在布局文件中定义的容器 ID。同时,newInstance() 函数和 getString() 函数的参数名称需要与你的数据变量名称相同。
阅读全文