import android.os.Bundle
import com.example.navigation.HomeFragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import androidx.fragment.app.Fragment
import com.example.navigation.R
import androidx.navigation.NavController
import androidx.navigation.Navigation
/**
* A simple [Fragment] subclass.
* Use the [HomeFragment.newInstance] factory method to
* create an instance of this fragment.
*/class HomeFragment :Fragment(){// TODO: Rename and change types of parametersprivatevar mParam1: String?=nullprivatevar mParam2: String?=nulloverridefunonCreate(savedInstanceState: Bundle?){super.onCreate(savedInstanceState)if(arguments !=null){
mParam1 =requireArguments().getString(ARG_PARAM1)
mParam2 =requireArguments().getString(ARG_PARAM2)}}overridefunonCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View?{// Inflate the layout for this fragmentreturn inflater.inflate(R.layout.fragment_home, container,false)}overridefunonActivityCreated(savedInstanceState: Bundle?){super.onActivityCreated(savedInstanceState)val button: Button
button =requireView().findViewById(R.id.button_home)
button.setOnClickListener{ v ->val controller = Navigation.findNavController(v)
controller.navigate(R.id.action_homeFragment_to_detailFragment2)}}companionobject{// TODO: Rename parameter arguments, choose names that match// the fragment initialization parameters, e.g. ARG_ITEM_NUMBERprivateconstval ARG_PARAM1 ="param1"privateconstval ARG_PARAM2 ="param2"/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment HomeFragment.
*/// TODO: Rename and change types and number of parametersfunnewInstance(param1: String?, param2: String?): HomeFragment {val fragment =HomeFragment()val args =Bundle()
args.putString(ARG_PARAM1, param1)
args.putString(ARG_PARAM2, param2)
fragment.arguments = args
return fragment
}}}
DetailFragment
package com.example.navigation
import android.os.Bundle
import com.example.navigation.DetailFragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.navigation.Navigation
import com.example.navigation.R
/**
* A simple [Fragment] subclass.
* Use the [DetailFragment.newInstance] factory method to
* create an instance of this fragment.
*/class DetailFragment :Fragment(){// TODO: Rename and change types of parametersprivatevar mParam1: String?=nullprivatevar mParam2: String?=nulloverridefunonCreate(savedInstanceState: Bundle?){super.onCreate(savedInstanceState)if(arguments !=null){
mParam1 =requireArguments().getString(ARG_PARAM1)
mParam2 =requireArguments().getString(ARG_PARAM2)}}overridefunonCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View?{// Inflate the layout for this fragmentreturn inflater.inflate(R.layout.fragment_detail, container,false)}overridefunonActivityCreated(savedInstanceState: Bundle?){super.onActivityCreated(savedInstanceState)requireView().findViewById<View>(R.id.button_detail).setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_detailFragment_to_homeFragment))}companionobject{// TODO: Rename parameter arguments, choose names that match// the fragment initialization parameters, e.g. ARG_ITEM_NUMBERprivateconstval ARG_PARAM1 ="param1"privateconstval ARG_PARAM2 ="param2"/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment DetailFragment.
*/// TODO: Rename and change types and number of parametersfunnewInstance(param1: String?, param2: String?): DetailFragment {val fragment =DetailFragment()val args =Bundle()
args.putString(ARG_PARAM1, param1)
args.putString(ARG_PARAM2, param2)
fragment.arguments = args
return fragment
}}}