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)
    }

二,测试效果:

posted @ 2025-04-26 08:41  刘宏缔的架构森林  阅读(25)  评论(0)    收藏  举报