예시로 게임선택창 -> 선택된 게임 -> 결과창에서 다시하기or메인으로 돌아가기를 추가했다.
사용하기
class GameActivity : AppCompatActivity() {
lateinit var navController : NavController
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_game)
// 전 액티비티에서 발견한 NavHost 연결
navController = nav_host_fragment.findNavController()
}
}
아까 추가해준 액티비티에
lateinit var navController : NavController
navController = nav_host_fragment.findNavController()
를 추가해준다.
또한 setupActionBarWithNavController 를 사용하면 프래그먼트 창에서 뒤로가기 키를 만들 수 있다.
그리고 프래그먼트로 와서 동일하게
class GameSelectFragment : Fragment() {
lateinit var navController : NavController
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_game_select, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
// 연결
navController = Navigation.findNavController(view)
gameButtonOne.setOnClickListener {
navController.navigate(R.id.action_gameSelectFragment_to_numberGameFragment)
}
}
}