使用androidx.navigation从片段中返回数据的方法如下:
findNavController().currentBackStackEntry?.savedStateHandle
来获取。下面是一个示例代码:
在源片段中:
val navController = findNavController()
val resultLiveData = navController.currentBackStackEntry?.savedStateHandle?.getLiveData<String>("result")
resultLiveData?.observe(viewLifecycleOwner) { result ->
// 处理返回的数据
Log.d("TAG", "返回的数据:$result")
}
在目标片段中:
val navController = findNavController()
val resultBundle = Bundle().apply {
putString("result", "返回的数据")
}
val previousBackStackEntry = navController.previousBackStackEntry
previousBackStackEntry?.savedStateHandle?.set("result", resultBundle)
navController.navigateUp()
这样,当目标片段返回结果时,源片段的回调函数会被触发,并可以获取到返回的数据。
腾讯云存储专题直播
小程序云开发官方直播课(应用开发实战)
云+社区技术沙龙[第7期]
T-Day
云+社区技术沙龙[第27期]
技术创作101训练营
北极星训练营
Elastic 中国开发者大会
Elastic 中国开发者大会
领取专属 10元无门槛券
手把手带您无忧上云