android: 在fragment之间传递参数
一,代码:
1,发送参数的fragment
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
println("first onViewCreated,参数:")
binding.buttonFirst.setOnClickListener {
println("点击发生了")
val args = Bundle();
args.putInt("id",888)
args.putString("name","老王")
findNavController().navigate(R.id.action_FirstFragment_to_SecondFragment,args)
}
binding.gothree.setOnClickListener {
findNavController().navigate(R.id.action_FirstFragment_to_ThreeFragment)
}
}
2,接收参数的fragment
class SecondFragment : Fragment() {
private var _binding: FragmentSecondBinding? = null
// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!!
private var id = 0
private var name = ""
@SuppressLint("ResourceType")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val inflater = TransitionInflater.from(requireContext())
enterTransition = inflater.inflateTransition(R.transition.slide_right)
exitTransition = inflater.inflateTransition(R.transition.slide_right)
println("全部参数");
println(arguments);
id = arguments?.getInt("id") ?: 0
println("onCreate,参数id:")
println(id)
name = arguments?.getString("name") ?: ""
println("onCreate,参数name:")
println(name)
}