4択クイズアプリ

Android Studio 4択クイズアプリ開発講座 第4回「クイズを表示する」

 

この記事は Android Studio 3.x / 4.0.1 に対応しています。
Android Studio 4.1 以降のバージョンをお使いの方はこちらをお読み下さい。

 
 

前回はクイズを管理する配列を作成しました。

今回はその配列からクイズを実際に表示してみます。
MainActivity.java ファイルを開いてはじめていきましょう!
 


 

動画

【Android Studio】4択クイズアプリ開発講座 #4 クイズを表示する

 
 

解説

クイズ出題用のメソッド

6~37行目を追加してください。

Warning が出ている箇所があると思いますが、最後に修正するのでそのままにしておいて下さい。

必要なImport


 
Random と Collections に警告が出た場合は、前回と同じようにaltreturnを同時に押して警告を消してください。

コードを直接書いて警告を消すこともできます。

import java.util.Collections;
import java.util.Random;

 
 

ランダムな数字

11~12行目では、quizArray からランダムにクイズを取り出すために、ランダムな数字を生成しています。

11行目 Random random = new Random();
12行目 int randomNum = random.nextInt(quizArray.size());

 

nextInt() を使うと「0から指定した値未満の整数」を返してくれます。

例えば

random.nextInt(5)

とすると、0から5未満の整数、つまり 0・1・2・3・4 のどれかを返します。
 

今回は quizArray からランダムにクイズを取り出したいので、0から配列の要素数マイナス1の範囲でランダムな数字を生成しています。
 
 

ArrayList<String> quizの中身

ArrayList<String> quiz には、この順番で要素が入っています。

{"都道府県名", "正解", "選択肢1", "選択肢2", "選択肢3"}

 

questionLabel には都道府県名を表示するので quiz.get(0) で quiz 配列から取り出します。

18行目 questionLabel.setText(quiz.get(0));

 

rightAnswer には正解を入れておくので quiz.get(1) で quiz 配列から取り出します。

21行目 rightAnswer = quiz.get(1);

 
 

選択肢のシャッフル

27行目 Collections.shuffle(quiz);

都道府県名は24行目で削除しているので、quiz 配列の中に残っているのは「正解と3つの選択肢」です。
これら4つの順番を Collections クラスの shuffle メソッドを使ってシャッフルします。

シャッフルしてから解答ボタンにセットすることで、選択肢を毎回違う順番で表示できるようになります。
 
 

クイズを削除

36行目 quizArray.remove(randomNum);

同じ問題が出題されないように、最後に quizArray から忘れずに削除しておきます。
 
 

showNextQuizを呼び出す

8行目を追加します。

 

アプリを起動して MainActivity が呼び出されたときにクイズが出題されるように showNextQuiz() を呼び出します。
 
 

エミュレーターで確認する

ここまでのコードが上手く動くかエミュレーターで確認してみましょう!
 

 
クイズが表示されましたか?
 

ランダムに出題されるかを確認するために、一度アプリを閉じて再度開いてみてください。
 

問題文が変わって、解答ボタンの順番もシャッフルされているでしょうか?
もし上手く表示されない場合は、次のサンプルコードと比較してみてください。
 
 

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

今回書いたコードのまとめです。

Warning が出ている箇所があると思いますが、最後に修正するのでそのままにしておいて下さい。

 

次に行うこと

次回はクイズで一番重要な機能「正解・不正解」を判定する処理を書いていきます。

第5回「正解・不正解チェック」に進む

 
 

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


 

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

完全版では

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

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

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

さらに3つの特典

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

もご用意しました。
 

講座ボーナス

 
 

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

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

 
 

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