4択クイズアプリ

【Android Studio 4.1】クイズアプリ開発講座 第5回「正解・不正解を判定する」

 
この講座の目次はこちら

Android Studio 3.x / 4.0.1 をお使いの方はこちらをお読み下さい。

前回クイズを表示することができたので、今回は正解・不正解を判定できるようにしていきます。
 

クイズ画面を作成した時に、解答ボタンに android:onClick="checkAnswer" と書きました。

checkAnswerメソッド
 

これは「このボタンが押されたら checkAnswer メソッドを呼びます」という意味です。
 

今回はこの checkAnswer メソッドを追加して、クイズの正解・不正解を判定できるようにします。
 

クイズの正解・不正解は、画像のようにダイアログを使って表示します。

正解・不正解のダイアログ
 

それでは MainActivity.java を開いて始めていきましょう!
 
 


 

動画

【Android Studio 4.1】クイズアプリ開発講座 #6 正解・不正解を判定する

 
 

テキスト

1. クイズの出題数を設定する

まずはクイズを何問出題するかを決めます。

3行目を追加してください。

 

ここではクイズを5問出題するように設定しました。

10問出題したい場合は

static final private int QUIZ_COUNT = 10;

としてください。

出題済みのクイズは quizArray から削除されていきます。出題数は quizArray の要素数を超えない範囲に設定してください。

 
 

2. checkAnswerメソッド

5~36行目を追加します。

 

必要な import

alt キーと return キーで警告を消します。

AlertDialog は2つの選択肢が出ると思いますが androidx.appcompat.app.AlertDialog を選択して下さい。

必要なimport

android.app と androidx.appcompat.app はどちらもサポートライブラリですが、新しい androidx を使うことが推奨されています。

 

追加される import は3つです。

import android.content.DialogInterface;
import androidx.appcompat.app.AlertDialog;
import android.view.View;

 
 

8~9行目:どの解答ボタンが押されたかを取得

Button answerBtn = findViewById(view.getId());
String btnText = answerBtn.getText().toString();

押された解答ボタンを見つけて、そのボタンのテキストを取得しています。
 
 

12~17行目:正解・不正解の判定

12行目では解答ボタンのテキストと rightAnswer が一致するかで正解・不正解を判定しています。

if (btnText.equals(rightAnswer)) {
  alertTitle = “正解!”;
  rightAnswerCount++;
} else {
  alertTitle = “不正解…”;
}

正解の場合は、このあと作成するダイアログのタイトルを「正解!」として、正解数をカウントする rightAnswerCount に1を加算します。

不正解の場合は、ダイアログのタイトルを「不正解…」とするだけです。
 
 

20行目~:ダイアログを表示する

20行目からはダイアログを作成しています。
まずはタイトル・メッセージ・OKボタンを追加します。

ダイアログの設定
 

23行目からは OK ボタンが押された時の処理を書いています。

if (quizCount == QUIZ_COUNT) {
  // 結果画面へ移動
} else {
  quizCount++;
  showNextQuiz();
}

 

最初に設定した出題数 QUIZ_COUNT と quizCount が同じになったら結果画面に移動します。

QUIZ_COUNT に達していない場合は quizCount に1を足して、再び showNextQuiz メソッドを呼びます。

クイズ出題の流れ
 

これでクイズを続けて出題できるようになります。
 

34行目の setCancelable はダイアログの外側をタップしたときにダイアログを閉じるかどうかを指定しています。

false にしているので OK ボタンを押さないとダイアログを閉じることはできません。
 
 

3. エミュレータで確認

エミュレータでアプリを実行してみて下さい。

正解・不正解の判定が正しく行われ、クイズが連続して出題されるでしょうか?

もし上手く動かない場合は下にサンプルコードを貼ってあるので確認してみてください。

メモ

まだ結果画面を作成していないので、5問目終了時のダイアログで「OK」ボタンを押すとアプリが強制終了されてしまいます。
現時点では問題ないので、このまま進んでください。

 
 

次に行うこと

これでメインのクイズ機能は完成です!

次回からは結果画面を作成していきましょう。

第6回「結果画面の作成」に進む
 
 

ここまでのコード

 

クイズアプリ開発講座の完全版について


 

もっとアプリ開発をしてみたい!自分のアプリをリリースしたい!という方のために、この講座の完全版をご用意しました。
 

完全版では

  • SQLite Databaseを使ってのクイズ管理
  • クイズカテゴリの選択
  • 正解・不正解の効果音
  • AdMob バナー・インタースティシャル広告
  • Image Asset Studio(アイコン作成ツール)の使い方

などを実装していきます。
 

これらのコードはクイズアプリ以外にも利用できるコードばかりなので、今後アプリを開発していく時に必ず役立つと思います。
 

さらに3つの特典

  1. Google Play Games リーダーボード・実績の実装方法
  2. 画像を使ったクイズアプリの作り方
  3. 答えを入力するクイズアプリの作り方

もご用意しました。
 

講座ボーナス
 

全手順の動画付きで、アプリの開発から公開・アップデートまで出来る講座になっています。

初めてアプリを作るという方もぜひ挑戦してみてください
 

 
 

ABOUT ME
Sara
Sara
「わかりやすく・シンプル」をモットーに、スマホアプリ・ウェブアプリの作り方を紹介します。 独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています🙂
独学は難しそうと感じたら

 
独学でプログラミングを勉強するのは難しそう、効率的にプログラミングを学びたいという方はオンラインスクールがオススメです。

オンラインスクールを選ぶときのポイント

  • 無料体験があること
  • 個別サポートがあること

自分にあったスタイルを見つけるために、無料体験のご利用をオススメします。(無料体験後に自分には合わないなと感じたらハッキリ断ってしまって問題ありません。)
 
個別サポートもプログラミング学習に挫折しないために重要なポイントです。エラーや困った時にすぐに個別対応をしてくれるスクールを利用して下さい。

ここでは3つのオンラインスクールを紹介します。
全て無料体験がありますので、ぜひ自分に合ったスクールを見つけてみて下さい????
 

1. TechAcademy(テックアカデミー)

オンライン完結で勉強できるスクールで、コースがとても充実しています。チャットで質問すればすぐに回答を得られるのが一番のおすすめポイントです。
オリジナルのサービスやアプリの開発もサポートしてくれるので、開発したいものが決まっている人にもオススメです。

無料体験はこちら

2. CodeCamp(コードキャンプ)

一対一で受講できる個別指導のプログラミングスクールです。
Webデザイン・Webサービス開発・アプリ開発などを幅広く学習することができます。
マンツーマンなので自分のペースで学習できて、質問もその都度できるのがメリットです。

無料体験レッスンはこちら

3. Treehouse

英語でも良い、英語とプログラミングを同時に勉強したいという方は Treehouse がオススメです。月25ドルで始めることができて、たくさんのプログラミング言語を学ぶことができます。
個別サポートはありませんが、掲示板が充実しています。ほとんどの場合、質問してから30分程度で回答を得ることができます。

7日間の無料体験はこちら

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA