質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

5927閲覧

Androidアプリを作成することになりました。50問あるクイズアプリを作成しようと思うのですが一覧リストのようなものからクリックして問題を選ぶことは可能でしょうか?

3buro

総合スコア29

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

2クリップ

投稿2015/05/12 08:57

現在、Android Studio1.2でクイズアプリを作成しています。

Top/Menu/問題というように画面が遷移する仕組みを作りました。
この問題をtextデータ(別データ)で管理して問題画面で読み込むようにしています。
現在はtextデータの一番上にある問題が読み込まれます。

![イメージ説明][WI![イメージ説明]WIDTH:575

↑Menu画面でボタンをクリックしたら、別データで管理している該当番号にリンクさせる方法はありますか?

そもそも、50問ものクイズを管理する方法として適している形はどのようなものが良いですか?

頑張って完成させたいと思っていますので、何か助言などをいただけると大変助かります。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

  1. Menu画面を出す時にtextデータから問題の配列を作成
  2. ボタンをクリックした時に配列の番号を決定して対応する問題を呼び出し,問題画面を呼び出す

ファイルの読み書きはまだ私もきちんと把握仕切れていないので断片的なアドバイスになりますが・・・・
タブで区切るよりカンマで区切ったほうが扱いやすいかと思います.
そして問題用のクラスを用意します(仮にQuestionとします).
Questionでは問題文と選択肢を入れるフィールドを用意しておきます.

lang

1public class Question implements Serializable{ 2 String question; 3 String[] answers; 4}

さらに,ArrayList<Question>を用意しておきます(長さが変えられる配列のようなクラスです.問題数固定なら最初からQuestionの配列で十分かも).

lang

1//Menu画面にて 2ArrayList<Question> list = new ArrayList<Question>(); 3//または 4Question[] list = new Question[50];

ファイルから行ごとに読み込みQuestionオブジェクトを作成し,ArrayListに追加していきます.これをファイルの最後に到達するまで繰り返します.
ここは私もまだしっかり理解していないので,ここを参照してください→テキストファイルを読む
そしてボタンごとにonClickListenerのonClickで,Aがクリックされたら0,Bなら1,という具合に値を設定して,その値でArrayListなり配列なりから問題を取り出し,問題画面を起動します.

lang

1//ボタンを置いたActivityにリスナーを実装し,それをボタンにセットした前提で書きます 2public void onClick(View v){ 3 int i = -1; //仮に初期化しておく 4 //ボタンに設定したidで場合分け(ここでは適当に書いている) 5 switch(v.getId()){ 6 case R.id.a: 7 i = 0; 8 break; 9 case R.id.b: 10 i = 1; 11 break; 12131415 } 16 Intent intent = new Intent(this, ***.class); //***は,問題画面を出すActivityの名前 17 intent.putExtra("Question", list.get(i)); //ArrayListの場合.配列ならlist[i] 18 startActivity(intent); //問題画面を出す 19}

移動先のActivityで送った問題を取り出して処理します.

lang

1Question question = (Question)getIntent().getSerializableExtra("Question");

投稿2015/05/12 09:05

編集2015/05/12 09:57
swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

3buro

2015/05/12 09:24

回答ありがとうございます。 大変恐れ入りますが、問題の配列を作成するための記述例や クリックしたときに配列の番号を決定して問題を呼び出す具体的なコード例など おわかりになりますでしょうか?
swordone

2015/05/12 09:26

問題のtextデータはどのような形式で記述していますか?
3buro

2015/05/12 09:31

What is A? A0 A1 A2 A3 What is B?  B0 B1 B2 B3 のようにタブで区切って問題と回答を表示させています。 これがC→Dというようにどんどん下の行に追加している方式をとっています。
3buro

2015/05/12 10:08

詳しいコードの記述、ありがとうございました!! この記述を試してみたいと思います。 参照リンクの提示もありがとうございました。きちんと勉強したいと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問