Android Kotlin基礎講座 05.1: ViewModelとViewModelProvider

Android Kotlin基礎講座

タスク:END GAMEボタンのクリックリスナーを実装する

このタスクでは、END GAMEボタンのクリックリスナーを実装していきます。

  1. GameFragmentの中にonEndGame()というメソッドを追加してください。onEndGame()メソッドはユーザーがEND GAMEボタンをタップすると呼び出されます。
private fun onEndGame() {
   }
  1. GameFragmentのonCreateView()メソッドの中で、Got itボタンとSkipボタン用のクリックリスナーをセットしているコード部分を見てください。これらのコードのすぐ下にEND GAMEボタン用のクリックリスナーをセットしてください。バインディング変数bindingを使います。クリックリスナーの中でonEndGame()メソッドを呼び出してください。
binding.endGameButton.setOnClickListener { onEndGame() }
  1. GameFragmentの中に、gameFinished()というアプリを得点画面に遷移させるためのメソッドを追加してください。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)
}
  1. onEndGame()メソッドの中でgameFinished()メソッドを呼び出してください。
private fun onEndGame() {
   gameFinished()
}
  1. アプリを起動してゲームをプレイしてください。いくつか単語を表示させたあとにEND GAMEボタンをタップしてください。アプリが得点画面に遷移することを確認してください。しかし最終的な得点は表示されていません。次のタスクでこれを解消していきます。

コメント

プロフィール

プロフィール
コードラボJP

大学卒業後SEに就職、現在は退職しフリーランスとして活動中。
『初心者でも挫折せずに一人でプログラミングを学べる』をモットーに、コードラボJPを開設
お問い合わせ等はcodelabsjp@gmail.comまで

コードラボJPをフォローする
タイトルとURLをコピーしました