AndroidStudioで4択クイズアプリを作ってみた

こんにちは、ベルナです。

Android Studioでクイズアプリを作ってみました。

参考書を一周してから初めて作ったアプリなのでクオリティはかなり低いです。
それでも自分ひとりで完成させたときは嬉しいですね。

クイズの内容は私が好きなポケモンに関するものにしました。

使用したアプリはAndroid Studioだけです。

最初にノートに脳内イメージを書いて、それを元にしてテキストやボタンを配置していきました。

大体こんな感じです。

問題文をどうやって読み込もうかと調べていたところ、jsonファイルから読み込む方法が書かれていたサイトがあったので、jsonを使おうと決めました。

jsonファイルを作り、適当に問題を作成していきました。

その際、問題文を書き連ねる前に難易度を書いておくことで、難易度選択がされたときにどの問題を読み込むか決められるようにしました。

こんな感じです。↓

jsonファイル
{
  "easy": [
    {
      "QuestionNumber": "Q1",
      "Question": "タイプ1が地面タイプのポケモンは?",
      "choice1": "ゴローニャ",
      "choice2": "サナギラス",
      "choice3": "ドサイドン",
      "choice4": "イワーク",
      "answer": "choice3"
    },
    {
      "QuestionNumber": "Q2",...

次に正解か不正解かを表示するアクティビティを作成しました。

本来ならここではアクティビティを新規に作成するのではなくダイアログを表示させた方がいいです。
データを保存するときに楽になります。

しかし、私はそんなことしなくても簡単にできると思っていたので苦戦することになりました。
これから作ろうと考えている人は真似しない方がいいです。

問題を配置するときに、正解の選択肢が押されたら正解アクティビティに、不正解のボタンなら不正解アクティビティに遷移するようにメソッドを作りました。
このメソッドでは、正解した場合に「正解した回数」をカウントしてデータに保存するようにしました。

元々は遷移後にカウントしようと思っていましたが、アクティビティを挟んで保存されているデータを共有することはできないようです。(データを渡すことはできます。)

正解・不正解アクティビティから戻ってくると、問題番号が初期化されてしまいます。
ついでに選択した難易度も初期化されています。(タイトル画面から押されたボタンの情報を読み取っただけなので。)

これを何とかするために、「問題番号」と「難易度」もデータに保存するようにしました。
これでデータに保存されているのは「問題番号」「難易度」「正解した回数」となっています。

アクティビティの最初の方に、データから問題番号と難易度を読み込めば、次に表示する問題がわかりますからね。

問題をすべて出題したら、結果を表示する画面に遷移するようにしました。
このときに「正解した回数」をデータとして渡し、結果画面でスコアを表示できるようにしました。

今回は問題数を10問としたので、正解数を10倍して100点満点でスコアを出すようにしました。

また、タイトルに戻るボタンも設置しました。

こんな感じです。↓

実際に動かしてみた動画がこちらです。↓

ポケモンに詳しいから問題を解きながら見たいという方は一時停止推奨です。

挙動としては普通のクイズアプリのように問題なく動いています。

正解音・不正解音をつけるとか細かい点が残っていますが、アプリとしては十分に機能していますね。

参考書とにらめっこしながら作成したので改善点はたくさんありますが、とりあえずはちゃんと動いてくれてよかったです。

コメントを残す

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