teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

コード編集

2016/07/05 23:39

投稿

q0220_3694
q0220_3694

スコア11

title CHANGED
File without changes
body CHANGED
@@ -17,8 +17,10 @@
17
17
  ###該当のソースコード
18
18
  ```java
19
19
 
20
+
20
21
  import android.os.Bundle;
21
22
  import android.support.v7.app.AppCompatActivity;
23
+ import android.view.View;
22
24
  import android.widget.RadioButton;
23
25
 
24
26
  import java.util.Arrays;
@@ -32,8 +34,8 @@
32
34
 
33
35
  String[][] ANSWRE = {
34
36
  {"Japan", "Japon", "Jpan"},
35
- {"buuk", "book", "buok"},
37
+ {"book", "buuk", "buok"},
36
- {"desuk", "desc", "desk"},
38
+ {"desk", "desc", "desuk"},
37
39
  };
38
40
 
39
41
  @Override
@@ -44,11 +46,27 @@
44
46
  //ラジオボタン
45
47
  RadioButton[][] radio = new RadioButton[ANSWRE.length][ANSWRE[0].length];
46
48
  //ラジオボタン設定
47
- for(int n = 0; n < ANSWRE.length; n++){
49
+ for(int n = 0; n < ANSWRE.length; n++) {
48
- for(int m = 0; m < ANSWRE[n].length; m++){
50
+ for (int m = 0; m < ANSWRE[n].length; m++) {
49
51
  radio[n][m] = new RadioButton(this);
50
52
  radio[n][m].setText(ANSWRE[n][m]);
51
53
  //idの設定とかもここで
54
+ radio[n][m].setId(m);
55
+
56
+
57
+ View.OnClickListener event = null;
58
+ radio[n][m].setOnClickListener(event);
59
+ event = new View.OnClickListener() {
60
+ @Override
61
+ public void onClick(View v) {
62
+ if (v.getId() == 0) {
63
+ //正解処理
64
+ } else {
65
+ //不正解処理
66
+ }
67
+ //次の問題へ
68
+ }
69
+ };
52
70
  }
53
71
  }
54
72
 
@@ -65,7 +83,6 @@
65
83
  t.radio = list2.toArray(new RadioButton[]{});//元に戻す
66
84
  }
67
85
  }
68
- }
69
86
 
70
87
 
71
88
  ------------------------------------------------

1

コードの変更

2016/07/05 23:38

投稿

q0220_3694
q0220_3694

スコア11

title CHANGED
@@ -1,1 +1,1 @@
1
- 【Android java】クイズアプリ 多次元配列のシャッフルについて
1
+ ja【Android java】クイズアプリ 多次元配列のシャッフルについて
body CHANGED
@@ -16,9 +16,11 @@
16
16
  また、回答の選択肢のラジオボタンを選択した段階で、次のクイズに進むやり方がわかりません。
17
17
  ###該当のソースコード
18
18
  ```java
19
+
19
20
  import android.os.Bundle;
20
21
  import android.support.v7.app.AppCompatActivity;
21
- import android.widget.TextView;
22
+ import android.widget.RadioButton;
23
+
22
24
  import java.util.Arrays;
23
25
  import java.util.Collections;
24
26
  import java.util.List;
@@ -28,10 +30,10 @@
28
30
  //問題内容の定義
29
31
  String[] QUESTION = {"日本", "本", "机"};
30
32
 
31
- String[][] ANSWRE ={
33
+ String[][] ANSWRE = {
32
- {"Japan","Japon","Jpan"},
34
+ {"Japan", "Japon", "Jpan"},
33
- {"buuk","book","buok"},
35
+ {"buuk", "book", "buok"},
34
- {"desuk","desc","desk"},
36
+ {"desuk", "desc", "desk"},
35
37
  };
36
38
 
37
39
  @Override
@@ -39,12 +41,48 @@
39
41
  super.onCreate(savedInstanceState);
40
42
  setContentView(R.layout.activity_main);
41
43
 
42
- List<String> list1 = Arrays.asList(QUESTION.clone());
43
- Collections.shuffle(list1);
44
+ //ラジオボタン
44
- ((TextView) findViewById(R.id.textView2)).setText(list1.get(0));
45
+ RadioButton[][] radio = new RadioButton[ANSWRE.length][ANSWRE[0].length];
46
+ //ラジオボタン設定
47
+ for(int n = 0; n < ANSWRE.length; n++){
48
+ for(int m = 0; m < ANSWRE[n].length; m++){
49
+ radio[n][m] = new RadioButton(this);
50
+ radio[n][m].setText(ANSWRE[n][m]);
51
+ //idの設定とかもここで
52
+ }
53
+ }
45
54
 
55
+ //Toiクラス利用
56
+ Toi[] toi = new Toi[QUESTION.length];
57
+ for(int n = 0; n < toi.length; n++)
58
+ toi[n] = new Toi(QUESTION[n], radio[n]);
59
+
60
+ List<Toi> list1 = Arrays.asList(toi.clone());
61
+ Collections.shuffle(list1);//toiをシャッフルしたList型 list1
62
+ for(Toi t: list1){
63
+ List<RadioButton> list2 = Arrays.asList(t.radio.clone());
64
+ Collections.shuffle(list2);//シャッフル
65
+ t.radio = list2.toArray(new RadioButton[]{});//元に戻す
66
+ }
46
67
  }
47
68
  }
69
+
70
+
71
+ ------------------------------------------------
72
+
73
+ import android.widget.RadioButton;
74
+
75
+ public class Toi {
76
+
77
+ String que;
78
+ RadioButton[] radio;
79
+ Toi(String que, RadioButton[] radio){
80
+ this.que = que;
81
+ this.radio = radio;
82
+ }
83
+ }
84
+
85
+
48
86
  ```
49
87
 
50
88