4択クイズアプリ〜画像編

Android Studio 画像を使うクイズアプリの作り方 第3回「クイズを表示する」

ここまでの記事はこちら
 

クイズを管理する配列は用意できたので、今回はその配列からクイズを画面に表示してみます。

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

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

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

 
 

 

動画

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

 
 

解説

クイズ出題用のメソッド

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

 

必要なImport


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

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

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

 
 

ランダムな数字

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

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

random.nextInt(5)

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

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

ArrayList<String> quizの中身

quiz 配列には
 {"画像名", "正解", "選択肢1", "選択肢2", "選択肢3"}
の順番で要素が入っています。

配列から画像名を取り出す時は quiz.get(0)、正解を取り出す時は quiz.get(1) と書きます。
 

questionImage.setImageResource(
  getResources().getIdentifier(quiz.get(0), "drawable", getPackageName())
);
rightAnswer = quiz.get(1);

 
 

選択肢のシャッフル

29行目 Collections.shuffle(quiz);

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

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

クイズを削除

38行目 quizArray.remove(randomNum);

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

 
 

showNextQuizを呼び出す

5行目を追加します。

 

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

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

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

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

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

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

次に行うこと

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

第4回「正解・不正解の判定」に進む
 
 

ここまでのコード

 

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

COMMENT

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