【Android Studio】Kotlinでつくるクイズアプリ講座 第3回「クイズの準備」

ここまでの記事はこちら
クイズ画面は完成したので、今回はクイズ出題に必要な変数や配列を準備しています。
MainActivity.kt を開いて始めていきましょう!
解説
1. ViewBinding の設定
MainActivity.kt では問題文や選択肢を書き換えるコードを書くので、id を使って TextView と Button を取得します。
findViewById メソッドを使うのが一般的で、以下のように書くことができます。

これでもコードは動きますが、少し面倒ですし無効な ID や間違った型を指定してしまうリスクもあります。
また Kotlin の大きな特徴として Null(空っぽの状態)を回避するというものがあります。
今回は ViewBinding を使って簡単に TextView や Button にアクセスできるようにしましょう。
Step1
Android Studio 左側のプロジェクト構造から build.gradle(Module: QuizApp:app) を開きます。

11~13行目のコードを追加します。
画面右上の Sync Now を押します。

Step2
MainActivity.kt を開いて5・9行目を追加します。
Step3
onCreate 関数内を以下のように書き換えます。
完了
以上で ViewBinding を使う準備ができました。
今後は
val countLabel : TextView = findViewById(R.id.countLabel)
と書く必要はなく
binding.countLabel
で TextView や Button を操作することができるようになります。
参考: 【Android Studio】View Bindingの使い方(Kotlin編)
2. 変数の用意
4~6行目を追加します。
rightAnswer
正解を入れるために使います。
rightAnswerCount
正解数をカウントするために使います。
quizCount
何問目を出題しているのかをカウントするために使います。
3. クイズデータの用意
8~19行目を追加します。
クイズは List や Array ではなく、要素のシャッフルと削除ができる MutableList を使います。
MutableList の中に MutableList を入れる二次元配列の形にすることで
- 出題順序のシャッフル
- 選択肢のシャッフル
も簡単にできるようになります。
4. 関数の用意
5~15行目を追加します。
checkAnswer 関数は解答ボタンが押されたときに呼ばれます。
前回 Button 要素の onClick 属性につけた値と関数名を同じにすることにご注意ください。

5. アプリを実行
ここで一度エミュレータでアプリを実行してください。
前回と同じようにクイズ画面が表示されたら成功です。

次に行うこと
クイズを出題するための準備は完了です。
次回はクイズを画面に表示してみましょう!