4択クイズアプリ〜答え入力編

Android Studio 答えを入力するクイズアプリの作り方 第4回「正解・不正解の判定」

ここまでの記事はこちら

 

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

MainActivity.java を開いて始めていきましょう!
 
 

Android Studio 4択クイズアプリ開発講座ではより詳しくクイズアプリの作り方を解説しています。ぜひこちらもお読みください🙂

【必ず完成できる】 Android Studio 4択クイズアプリ開発講座 Android Studioクイズアプリ開発講座へようこそ! この講座では4択クイズアプリの作り方を紹介していきます。 ...

 
 

動画

【Android Studio】答えを入力するクイズアプリの作り方 #5 正解・不正解の判定

 
 

解説

checkAnswer メソッド

4~41行目を追加します。

 

必要なimport

前回までと同じように「alt + return」で警告を消します。
 

 
 
追加されるのは2つです。

import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;

 
 

ユーザーが入力したテキストを取得

7行目 String answer = editText.getText().toString();

ユーザーが EditText に入力した文字列を取得して String 型にします。
 
 

正解・不正解の判定

10行目 if (answer.equals(rightAnswer)) {

入力されたテキストと rightAnswer が一致するかで、正解・不正解を判定します。

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

不正解の場合は、ダイアログのタイトルを「不正解…」とします。
 
 

ダイアログを表示する

21行目からはダイアログを作成しています。

まずは、タイトル・メッセージ・OKボタンを追加します。


 
 

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

27行目 editText.setText("");

次の問題の答えを入力できるように EditText に入力した文字を空にします。
 
 

if (quizArray.size() < 1) {
 // クイズを全て出題したら結果を表示
} else {
 quizCount++;
 showNextQuiz();
}

 
quizArray の中身が空の場合は「全てのクイズを出題した」ということなので、クイズ結果を表示します。

quizArray にまだ出題していないクイズが残っている場合は quizCount に1を足し、再び showNextQuiz メソッドを呼びます。
 


 
 

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

出題数を指定したい場合
全てのクイズを出題し終わるまで続けるのではなく、自分で出題数を決めたい場合は、以下の記事の「QUIZ_COUNT」を参考にしてください🙂

Android Studio 4択クイズアプリ開発講座 第5回「正解・不正解チェック」ここまでの記事はこちら 前回はクイズを表示できるようにしたので、今回はクイズの正解・不正解を判定できるようにしていきます。 ...

 
 

エンターキーでクイズの回答をチェックする

次に、クイズの回答を入力してエンターキーを押すと checkAnswer メソッドが呼び出されるようにしていきます。

エンターキーが押されたかは、EditText に onKeyListener をセットすることで判定できます。
 

9~19行目を追加します。

 

必要なimport

前回までと同じように「alt + return」で警告を消します。
 

 
 
追加されるのは2つです。

import android.view.KeyEvent;
import android.view.View;

 

押されたキーの判定

12~16行目では「キーイベントが ACTION_DOWN(キーボードが押された)で、押されたキーが KEYCODE_ENTER(エンター)の場合に checkAnswer メソッドを呼ぶ」という判定をしています。
 

キーボードの各キーには「キーコード」が割り振られていて、このキーコードを使ってどのキーが押されたかを判別することができます。

エンターキー以外を使いたい場合は https://developer.android.com/reference/android/view/KeyEvent からキーコードを確認できます。

 
 

エミュレーターで確認

ここまで出来たらエミュレーターでアプリを起動してみてください。
正解・不正解の判定が正しく行われ、クイズが連続して出題されるでしょうか?
 

エミュレータの日本語キーボード表示方法はこちらの記事で紹介しています。

【2019年版】Android エミュレータの日本語化・キーボードを表示する方法 この記事では Android エミュレータの日本語化とキーボードの表示方法を紹介しています。 使用しているエミュレータは ...

 

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

次に行うこと

これで正解・不正解の判定は完成です!
次回はクイズ結果を表示できるようにしていきます。

第5回「結果の表示」に進む

 
 

ここまでのサンプルコード

 

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

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

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

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

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

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

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

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

無料体験はこちら

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

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

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

3. Treehouse

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

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

COMMENT

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