質問編集履歴

2

修正したい箇所をわかりやすくしました。

2020/10/19 08:54

投稿

Naokinaoki
Naokinaoki

スコア0

test CHANGED
File without changes
test CHANGED
@@ -18,18 +18,6 @@
18
18
 
19
19
 
20
20
 
21
- ### 発生している問題・エラーメッセージ
22
-
23
-
24
-
25
- ```
26
-
27
- エラーメッセージ
28
-
29
- ```
30
-
31
-
32
-
33
21
  ### 該当のソースコード
34
22
 
35
23
  package jp.codeforfun.quizapp;
@@ -200,7 +188,7 @@
200
188
 
201
189
  }
202
190
 
203
-
191
+ ### ここのランダムのところを変更したい
204
192
 
205
193
  public void showNextQuiz() {
206
194
 
@@ -262,6 +250,8 @@
262
250
 
263
251
  }
264
252
 
253
+ ###
254
+
265
255
  public void checkAnswer(View view) {
266
256
 
267
257
  // どの回答ボタンが押されたか
@@ -309,15 +299,3 @@
309
299
  }
310
300
 
311
301
  }
312
-
313
-
314
-
315
- ### 試したこと
316
-
317
-
318
-
319
-
320
-
321
-
322
-
323
- ### 補足情報(FW/ツールのバージョンなど)

1

2020/10/19 08:54

投稿

Naokinaoki
Naokinaoki

スコア0

test CHANGED
@@ -1 +1 @@
1
- android studioでクイズアプリ、問題の1~5や6~10のように問題を表示させたい
1
+ android studioでクイズアプリ、問題の1~5や6~10のように問題を表示させたい
test CHANGED
@@ -12,6 +12,8 @@
12
12
 
13
13
 
14
14
 
15
+ 問題のランダム表示を順番に表示させたいです。
16
+
15
17
  ご教授いただければ幸いです。
16
18
 
17
19
 
@@ -30,6 +32,174 @@
30
32
 
31
33
  ### 該当のソースコード
32
34
 
35
+ package jp.codeforfun.quizapp;
36
+
37
+
38
+
39
+ import androidx.appcompat.app.AppCompatActivity;
40
+
41
+
42
+
43
+ import android.app.AlertDialog;
44
+
45
+ import android.content.DialogInterface;
46
+
47
+ import android.content.Intent;
48
+
49
+ import android.os.Bundle;
50
+
51
+ import android.view.View;
52
+
53
+ import android.widget.Button;
54
+
55
+ import android.widget.TextView;
56
+
57
+
58
+
59
+ import java.util.ArrayList;
60
+
61
+ import java.util.Collections;
62
+
63
+ import java.util.Random;
64
+
65
+
66
+
67
+ public class MainActivity extends AppCompatActivity {
68
+
69
+
70
+
71
+ private TextView countLabel;
72
+
73
+ private TextView questionLabel;
74
+
75
+ private Button answerBtn1;
76
+
77
+ private Button answerBtn2;
78
+
79
+ private Button answerBtn3;
80
+
81
+ private Button answerBtn4;
82
+
83
+
84
+
85
+ private String rightAnswer;
86
+
87
+ private int rightAnswerCount = 0;
88
+
89
+ private int quizCount = 1;
90
+
91
+ static final private int QUIZ_COUNT = 5;
92
+
93
+
94
+
95
+ ArrayList<ArrayList<String>> quizArray = new ArrayList<>();
96
+
97
+
98
+
99
+ String[][] quizData = {
100
+
101
+ // {"都道府県名", "正解", "選択肢1", "選択肢2", "選択肢3"}
102
+
103
+ {"北海道", "札幌市", "長崎市", "福島市", "前橋市"},
104
+
105
+ {"青森県", "青森市", "広島市", "甲府市", "岡山市"},
106
+
107
+ {"岩手県", "盛岡市","大分市", "秋田市", "福岡市"},
108
+
109
+ {"宮城県", "仙台市", "水戸市", "岐阜市", "福井市"},
110
+
111
+ {"秋田県", "秋田市","横浜市", "鳥取市", "仙台市"},
112
+
113
+ {"山形県", "山形市","青森市", "山口市", "奈良市"},
114
+
115
+ {"福島県", "福島市", "盛岡市", "新宿区", "京都市"},
116
+
117
+ {"茨城県", "水戸市", "金沢市", "名古屋市", "奈良市"},
118
+
119
+ {"栃木県", "宇都宮市", "札幌市", "岡山市", "奈良市"},
120
+
121
+ {"群馬県", "前橋市", "福岡市", "松江市", "福井市"},
122
+
123
+ };
124
+
125
+
126
+
127
+ @Override
128
+
129
+ protected void onCreate(Bundle savedInstanceState) {
130
+
131
+ super.onCreate(savedInstanceState);
132
+
133
+ setContentView(R.layout.activity_main);
134
+
135
+
136
+
137
+ countLabel = findViewById(R.id.countLabel);
138
+
139
+ questionLabel = findViewById(R.id.questionLabel);
140
+
141
+ answerBtn1 = findViewById(R.id.answerBtn1);
142
+
143
+ answerBtn2 = findViewById(R.id.answerBtn2);
144
+
145
+ answerBtn3 = findViewById(R.id.answerBtn3);
146
+
147
+     TextView countLabel = findViewById(R.id.countLabel);
148
+
149
+
150
+
151
+ // 正解数を取得
152
+
153
+ Intent intent = getIntent();
154
+
155
+ rightAnswerCount = intent.getIntExtra("rightAnswerCount", 0);
156
+
157
+ //quizCountを取得
158
+
159
+ quizCount = intent.getIntExtra("quizCount", quizCount);
160
+
161
+
162
+
163
+ // TextViewに表示する
164
+
165
+ countLabel.setText(String.valueOf(quizCount) + "/10");
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+ // クイズデータquizDataからクイズ出題用のquizArrayを作成する
174
+
175
+ for (String[] quizDatum : quizData) {
176
+
177
+
178
+
179
+ // 新しいArrayListを準備
180
+
181
+ ArrayList<String> tmpArray = new ArrayList<>();
182
+
183
+
184
+
185
+ // クイズデータを追加
186
+
187
+ tmpArray.add(quizDatum[0]); // 問題
188
+
189
+ tmpArray.add(quizDatum[1]); // 正解
190
+
191
+ tmpArray.add(quizDatum[2]); // 選択肢1
192
+
193
+ tmpArray.add(quizDatum[3]); // 選択肢2
194
+
195
+
196
+
197
+ // tmpArrayをquizArrayに追加する
198
+
199
+ quizArray.add(tmpArray);
200
+
201
+ }
202
+
33
203
 
34
204
 
35
205
  public void showNextQuiz() {
@@ -92,6 +262,54 @@
92
262
 
93
263
  }
94
264
 
265
+ public void checkAnswer(View view) {
266
+
267
+ // どの回答ボタンが押されたか
268
+
269
+ Button answerBtn = findViewById(view.getId());
270
+
271
+ String btnText = answerBtn.getText().toString();
272
+
273
+ String str = rightAnswer.toString();
274
+
275
+
276
+
277
+ if (btnText.equals(rightAnswer)) {
278
+
279
+ rightAnswerCount++;
280
+
281
+ Intent intent = new Intent(Base_Screen.this, Correct_Answer.class);
282
+
283
+ intent.putExtra("rightAnswerCount", rightAnswerCount);
284
+
285
+ intent.putExtra("quizCount", quizCount);
286
+
287
+ intent.putExtra("rightAnswer", str);
288
+
289
+ startActivity(intent);
290
+
291
+
292
+
293
+ } else {
294
+
295
+ Intent intent = new Intent(Base_Screen.this, Incorrect_answer.class);
296
+
297
+ intent.putExtra("rightAnswerCount", rightAnswerCount);
298
+
299
+ intent.putExtra("quizCount", quizCount);
300
+
301
+ intent.putExtra("rightAnswer", str);
302
+
303
+ startActivity(intent);
304
+
305
+
306
+
307
+ }
308
+
309
+ }
310
+
311
+ }
312
+
95
313
 
96
314
 
97
315
  ### 試したこと