728x90
반응형
이번 과제는 'End Game' 버튼에 클릭 리스너를 구현하는 것이다.
1. GameFragment에서 onEndGame() 메소드를 추가한다.
private fun onEndGame() {
}
이 메소드는 사용자가 'End Game' 버튼을 탭할 때 호출될 것이다.
2. GameFragment에서 onCreateView() 메소드 안에 'Got It'과 'Skip' 버튼의 리스너를 설정하는 코드를 위치시킨다.
위 두줄의 코드 바로 아래에 'End Game' 버튼을 위한 클릭 리스너를 binding 변수를 사용해 설정한다.
binding.endGameButton.setOnClickListener { onEndGame() }
3. GameFragment에서 앱의 점수 화면으로 넘어가기 위해 gameFinished() 메소드를 추가한다.
점수를 인자로 전달하기 위해 Safe Args를 사용한다.(고 되어있는데 Safe Args에 대한 공부는 추가로 해야할 듯 하다)
/**
* Called when the game is finished
*/
private fun gameFinished() {
Toast.makeText(activity, "Game has just finished", Toast.LENGTH_SHORT).show()
val action = GameFragmentDirections.actionGameToScore()
action.score = viewModel.score
NavHostFragment.findNavController(this).navigate(action)
}
4. onEndGame() 메소드에서 gameFinished() 메소드를 호출한다.
private fun onEndGame() {
gameFinished()
}
728x90
반응형
'Android' 카테고리의 다른 글
Codelab으로 LiveData 알아보기 - 과정 소개 (2) | 2023.01.15 |
---|---|
Codelab으로 ViewModel 알아보기 - 4. Use a ViewModelFactory(完) (0) | 2023.01.13 |
Codelab으로 ViewModel 알아보기 - 2. Populate the ViewModel (0) | 2022.12.23 |
Codelab으로 ViewModel 알아보기 - 1. Create the ViewModel (0) | 2022.12.15 |
Android APK 소개 (0) | 2022.11.15 |