回答編集履歴

1

実例

2015/05/12 09:57

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -1,3 +1,99 @@
1
1
  1. Menu画面を出す時にtextデータから問題の配列を作成
2
2
 
3
3
  2. ボタンをクリックした時に配列の番号を決定して対応する問題を呼び出し,問題画面を呼び出す
4
+
5
+ ---
6
+
7
+
8
+
9
+ ファイルの読み書きはまだ私もきちんと把握仕切れていないので断片的なアドバイスになりますが・・・・
10
+
11
+ タブで区切るよりカンマで区切ったほうが扱いやすいかと思います.
12
+
13
+ そして問題用のクラスを用意します(仮にQuestionとします).
14
+
15
+ Questionでは問題文と選択肢を入れるフィールドを用意しておきます.
16
+
17
+ ```lang-java
18
+
19
+ public class Question implements Serializable{
20
+
21
+ String question;
22
+
23
+ String[] answers;
24
+
25
+ }
26
+
27
+ ```
28
+
29
+ さらに,ArrayList<Question>を用意しておきます(長さが変えられる配列のようなクラスです.問題数固定なら最初からQuestionの配列で十分かも).
30
+
31
+ ```lang-java
32
+
33
+ //Menu画面にて
34
+
35
+ ArrayList<Question> list = new ArrayList<Question>();
36
+
37
+ //または
38
+
39
+ Question[] list = new Question[50];
40
+
41
+ ```
42
+
43
+ ファイルから行ごとに読み込みQuestionオブジェクトを作成し,ArrayListに追加していきます.これをファイルの最後に到達するまで繰り返します.
44
+
45
+ ここは私もまだしっかり理解していないので,ここを参照してください→[テキストファイルを読む](http://www.javadrive.jp/start/stream/index1.html)
46
+
47
+ そしてボタンごとにonClickListenerのonClickで,Aがクリックされたら0,Bなら1,という具合に値を設定して,その値でArrayListなり配列なりから問題を取り出し,問題画面を起動します.
48
+
49
+ ```lang-java
50
+
51
+ //ボタンを置いたActivityにリスナーを実装し,それをボタンにセットした前提で書きます
52
+
53
+ public void onClick(View v){
54
+
55
+ int i = -1; //仮に初期化しておく
56
+
57
+ //ボタンに設定したidで場合分け(ここでは適当に書いている)
58
+
59
+ switch(v.getId()){
60
+
61
+ case R.id.a:
62
+
63
+ i = 0;
64
+
65
+ break;
66
+
67
+ case R.id.b:
68
+
69
+ i = 1;
70
+
71
+ break;
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+ }
80
+
81
+ Intent intent = new Intent(this, ***.class); //***は,問題画面を出すActivityの名前
82
+
83
+ intent.putExtra("Question", list.get(i)); //ArrayListの場合.配列ならlist[i]
84
+
85
+ startActivity(intent); //問題画面を出す
86
+
87
+ }
88
+
89
+ ```
90
+
91
+
92
+
93
+ 移動先のActivityで送った問題を取り出して処理します.
94
+
95
+ ```lang-java
96
+
97
+ Question question = (Question)getIntent().getSerializableExtra("Question");
98
+
99
+ ```