この講座の目次はこちら
Android Studio 3.x / 4.0.1 をお使いの方はこちらをお読み下さい。
前回クイズを表示することができたので、今回は正解・不正解を判定できるようにしていきます。
クイズ画面を作成した時に、解答ボタンに android:onClick="checkAnswer" と書きました。
これは「このボタンが押されたら checkAnswer メソッドを呼びます」という意味です。
今回はこの checkAnswer メソッドを追加して、クイズの正解・不正解を判定できるようにします。
クイズの正解・不正解は、画像のようにダイアログを使って表示します。
それでは MainActivity.java を開いて始めていきましょう!
目次
動画
テキスト
1. クイズの出題数を設定する
まずはクイズを何問出題するかを決めます。
3行目を追加してください。
ここではクイズを5問出題するように設定しました。
10問出題したい場合は
としてください。
出題済みのクイズは quizArray から削除されていきます。出題数は quizArray の要素数を超えない範囲に設定してください。
2. checkAnswerメソッド
5~36行目を追加します。
必要な import
alt キーと return キーで警告を消します。
AlertDialog は2つの選択肢が出ると思いますが androidx.appcompat.app.AlertDialog を選択して下さい。

android.app と androidx.appcompat.app はどちらもサポートライブラリですが、新しい androidx を使うことが推奨されています。
追加される import は3つです。
import androidx.appcompat.app.AlertDialog;
import android.view.View;
8~9行目:どの解答ボタンが押されたかを取得
String btnText = answerBtn.getText().toString();
押された解答ボタンを見つけて、そのボタンのテキストを取得しています。
12~17行目:正解・不正解の判定
12行目では解答ボタンのテキストと rightAnswer が一致するかで正解・不正解を判定しています。
alertTitle = “正解!”;
rightAnswerCount++;
} else {
alertTitle = “不正解…”;
}
正解の場合は、このあと作成するダイアログのタイトルを「正解!」として、正解数をカウントする rightAnswerCount に1を加算します。
不正解の場合は、ダイアログのタイトルを「不正解…」とするだけです。
20行目~:ダイアログを表示する
20行目からはダイアログを作成しています。
まずはタイトル・メッセージ・OKボタンを追加します。
23行目からは OK ボタンが押された時の処理を書いています。
// 結果画面へ移動
} else {
quizCount++;
showNextQuiz();
}
最初に設定した出題数 QUIZ_COUNT と quizCount が同じになったら結果画面に移動します。
QUIZ_COUNT に達していない場合は quizCount に1を足して、再び showNextQuiz メソッドを呼びます。
これでクイズを続けて出題できるようになります。
34行目の setCancelable はダイアログの外側をタップしたときにダイアログを閉じるかどうかを指定しています。
false にしているので OK ボタンを押さないとダイアログを閉じることはできません。
講座の完全版では DialogFragment を使う方法も紹介しています。
ダイアログの表示には DialogFragment を使うべきですが、このクイズでは画面を固定すると想定していること、より簡単に実装することを理由に使用していません。
3. エミュレータで確認
エミュレータでアプリを実行してみて下さい。
正解・不正解の判定が正しく行われ、クイズが連続して出題されるでしょうか?
もし上手く動かない場合は下にサンプルコードを貼ってあるので確認してみてください。
まだ結果画面を作成していないので、5問目終了時のダイアログで「OK」ボタンを押すとアプリが強制終了されてしまいます。
現時点では問題ないので、このまま進んでください。
次に行うこと
これでメインのクイズ機能は完成です!
次回からは結果画面を作成していきましょう。
ここまでのコード
クイズアプリ開発講座の完全版について
もっとアプリ開発をしてみたい!自分のアプリをリリースしたい!という方のために、この講座の完全版をご用意しました。
完全版では
- SQLite Databaseを使ってのクイズ管理
- クイズカテゴリの選択
- 正解・不正解の効果音
- AdMob バナー・インタースティシャル広告
- Image Asset Studio(アイコン作成ツール)の使い方
などを実装していきます。
これらのコードはクイズアプリ以外にも利用できるコードばかりなので、今後アプリを開発していく時に必ず役立つと思います。
さらに3つの特典
- Google Play Games リーダーボード・実績の実装方法
- 画像を使ったクイズアプリの作り方
- 答えを入力するクイズアプリの作り方
もご用意しました。
全手順の動画付きで、アプリの開発から公開・アップデートまで出来る講座になっています。
初めてアプリを作るという方もぜひ挑戦してみてください

この講座では Android Studio で4択クイズアプリを開発しながら
- SQLite データベースの使い方
- カテゴリ別のクイズ出題
- AdMob 広告の実装
- Play ストアへのアプリの公開
- Google Play ゲームとの連携
を学ぶことができます。
アプリを開発するだけでなく、アプリをリリースして広告収入を得たいという方にオススメの講座です。