4択クイズアプリ(Kotlin)

【Android Studio】Kotlinでつくるクイズアプリ講座 第4回「問題と選択肢の表示」

Android Studio Chipmunk | 2021.2.1 での動作確認を完了しました。(2022年5月)

この講座の目次はこちら
 

前回はクイズを出題するための用意をしました。

今回は配列からクイズを取り出して、実際にクイズ画面に表示してみましょう。

 


 

動画

準備中

 
 

テキスト

1. 問題と選択肢をセットする

showNextQuiz 関数に以下のコードを書きます。

3行目では quizData 配列の0番目のクイズを取り出しています。
 

取り出したクイズは

mutableListOf("問題", "正解", "選択肢1", "選択肢2", "選択肢3")

という順番で要素が入っています。

それぞれ取り出して questionLabel と answerBtn にセットしていきます。
 
 
 

2. showNextQuiz 関数を呼び出す

9行目を追加します。

 

アプリを起動して MainActivity が呼び出されたらすぐにクイズが出題されるように showNextQuiz 関数を呼び出します。
 
 
 

3. アプリを実行する

quizData 配列の最初の要素である「北海道」の問題と選択肢が表示されたでしょうか?


 
 
 

4. 出題順をシャッフルする

9行目を追加します。

MutableList には要素をシャッフルする shuffle 関数が用意されています。

この1行を書くだけで出題順をシャッフルすることができます。
 
 
 

5. 選択肢をシャッフルする

次はボタンに表示する選択肢をシャッフルします。

MutableList の中に MutableList を入れた二次元配列にしたので、取り出した quiz も MutableList 型になっています。

同じように shuffle 関数を使いますが、今回は都道府県を取り出してからシャッフルします。
 

showNextQuiz 関数を以下のように書き換えます。

 

9行目

quiz 配列は

mutableListOf("問題", "正解", "選択肢1", "選択肢2", "選択肢3")

となっています。

"正解"は正誤判定をするために使いたいので、シャッフルする前に取り出しておきます。
 
 

12行目

quiz.removeAt(0)

都道府県名はボタンに表示する選択肢ではないので削除しておきます。
 
 

15行目

quiz.shuffle()

都道府県名は削除したので、この時点で quiz 配列に残っているのは正解と3つの選択肢です。

これら4つの順番を shuffle 関数を使ってシャッフルします。

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

24行目

quizData.removeAt(0)

同じクイズが出題されないように quizData 配列から問題を削除しておきます。
 
 
 

6. アプリを実行する

それではクイズがランダムに表示されるかエミュレーターで確認してみましょう!


 

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

問題文が変わって、解答ボタンの順番もシャッフルされているでしょうか?
 
 
 

次に行うこと

次回はクイズアプリで一番重要な機能「正解・不正解の判定」を実装していきます。

第5回「正解・不正解を判定する」に進む
 
 

ここまでのコード

MainActivity.kt

 
 
 

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