【Android Studio】Kotlinでつくるクイズアプリ講座 第7回「結果の表示」

ここまでの記事はこちら
いよいよ最後の仕上げです。
クイズが終わったら結果画面に移動して、クイズの正解数を表示してみましょう。
解説
1. View Binding の用意
クイズ画面と同じく ViewBinding を使えるようにします。
ResultActivity.kt を開いて5・9・14~16行目を追加します。
2. 正解数を ResultActivity に渡す
正解数を結果画面に表示できるように、rightAnswerCount(正解数)を MainActivity(クイズ画面)から ResultActivity(結果画面)へ渡します。
MainActivity.kt の checkQuizCount 関数に4~6行目を追加してください。
必要なimport
3行目あたりに import が追加されます。
import android.content.Intent
Intent(インテント)の使い方
新しくアクティビティを開くときは Intent(インテント)クラスを使います。
val intent = Intent(Context context, Class<?> cls)
startActivity(intent)
context(コンテキスト)には現在のアクティビティ、cls には 表示するアクティビティを Class オブジェクトで書きます。
次に作成したインテントを startActivity に渡すことでアクティビティを表示することができます。
今回は rightAnswerCount(正解数)を ResultActivity(結果画面)で使いたいので、startActivity の前にこの1行を書いています。
intent.putExtra("RIGHT_ANSWER_COUNT", rightAnswerCount)
putExtra(取り出す時に使うキー, 渡したい値) と書くことで、遷移先のアクティビティに値を渡すことができます。
キーは String 型(文字列)ですが、値には String, Int, Float などをセットすることができます。
3. 正解数の表示
結果画面で正解数を受け取って表示します。
ResultActivity.kt を開いて、5・8行目を追加します。
5行目:正解数を取得
val score = intent.getIntExtra("RIGHT_ANSWER_COUNT", 0)
値を渡す時に使ったキー RIGHT_ANSWER_COUNT を使って正解数を受け取ります。
正解数は Int 型だったので getIntExtra メソッドを使います。
書き方は getIntExtra(キー, 値が取得できなかった場合の値) となります。
8行目:正解数を表示
binding.resultLabel.text = getString(R.string.result_score, score)
resultLabel に正解数を「3 / 5」と表示します。
クイズ画面の countLabel と同じように %d の部分に数値 score を入れています。
4. 「もう一度」ボタン
ResultActivity.kt の onCreate 関数に6~8行目を追加します。
今回は onClick 属性ではなく setOnClickListener を使いました。
ここでも Intent を使ってアクティビティを切り替えますが、MainActivity に渡す値はないので1行にまとめて書いています。
5. アプリの実行
ここでアプリを実行してみてください。
正解数が ResultActivity に渡されて、結果画面に正しく表示されたでしょうか?

完成
お疲れ様でした、これで完成です!
「アプリ開発って意外と簡単だな」と感じて頂けていれば嬉しい限りです。クイズ内容は自由にアレンジして構わないので、ぜひオリジナルのアプリを作ってみてくださいね。
超初心者です。
とてもわかりやすく助かっています、ありがとうございます。
最終章までわりとスムーズにできましたが、最後エラーがでてしまい、完成できずにいます。
ResultActivity.itの、正解数を取得の0)あとに赤い波線がでて、その後の、TextViewに表示するの、bindingと最後のscoreが赤くなり、..=,に赤い波線が出てしまいます。
エラーメッセージ
Expecting””
Unresolved reference:binding
Expecting an element
Expecting an element
Expecting an element
Expecting’)’
Unresolved reference:score,
またMainActivityの結果画面を表示の2段目のintentが赤くなってしまいます。
エラーメッセージ
Unresolved reference:intent
Windows11Home
AndroidStudio2022.1.1
を使っています。
自分では入力や綴りの再確認をしましたが、解決できませんでした。
よろしくお願いします。
当サイトを見つけていただきありがとうございます!
コードに間違いが無い場合、Android Studio のキャッシュや同期処理が上手く行っていないことが考えられるので、Android Studio の再起動をお試しください。
再起動でも解決しない場合は、エラー部分のスクリーンショットを貼り付けて頂けばと思います。
お返事ありがとうございます。
もう一回よく確認していたら入力間違いがあったのと、再起動をしたらエラーが消えました。
ありがとうございました!
ご報告ありがとうございます。
解決したとのこと良かったです!