Java 如何使用array android解决随机问题?没有工作

Java 如何使用array android解决随机问题?没有工作,java,android,arrays,android-layout,Java,Android,Arrays,Android Layout,大宗报价 对不起,我想问一下,我有一个想用数组随机测试的案例,但不能把每个问题都随机化,只有一个问题被改变了,也许有朋友可以帮助和解决 在这里输入代码 private int pertanyaan[]={R.raw.correct,R.raw.error, R.raw.correct,R.raw.error,R.raw.correct,R.raw.error,R.raw.assalamu_alaikum,R.raw.correct} public String pilihanganda []

大宗报价

对不起,我想问一下,我有一个想用数组随机测试的案例,但不能把每个问题都随机化,只有一个问题被改变了,也许有朋友可以帮助和解决 在这里输入代码

private int pertanyaan[]={R.raw.correct,R.raw.error,
R.raw.correct,R.raw.error,R.raw.correct,R.raw.error,R.raw.assalamu_alaikum,R.raw.correct}

  public String pilihanganda [] ={
          "Perhatikan gambar tersebut gambar ?, carilah seperti gambar diatas",
          "Perhatikan gambar tersebut gambar ?, carilah seperti gambar diatas",
          "Perhatikan gambar tersebut gambar ?, carilah seperti gambar diatas",
          "Perhatikan gambar tersebut gambar ?, carilah seperti gambar diatas",
          "Perhatikan gambar tersebut gambar ?, carilah seperti gambar diatas",
          "Perhatikan gambar tersebut gambar ?, carilah seperti gambar diatas",
          "Perhatikan gambar tersebut gambar ?, carilah seperti gambar diatas",
          "Perhatikan gambar tersebut gambar ?, carilah seperti gambar diatas",
          "Perhatikan gambar tersebut gambar ?, carilah seperti gambar diatas",
          "Perhatikan gambar tersebut gambar ?, carilah seperti gambar diatas",

          };



 private int pilihan_a [] ={R.drawable.hidung, R.drawable.wajah, R.drawable.rambut, R.drawable.pergelangan_kaki, 
                    R.drawable.telinga, R.drawable.rambut, R.drawable.leher, R.drawable.lengan, R.drawable.rambut
                    , R.drawable.telinga};
 private int pilihan_b[] ={R.drawable.tangan, R.drawable.rambut,R.drawable.leher, R.drawable.tangan, 
                    R.drawable.pergelangan_kaki, R.drawable.leher, R.drawable.rambut, R.drawable.lengan, R.drawable.telinga
                    , R.drawable.pundak};
 private  int pilihan_c[] ={R.drawable.pundak, R.drawable.lengan, R.drawable.tangan, R.drawable.pundak, R.drawable.pergelangan_kaki
                    , R.drawable.tangan, R.drawable.pergelangan_kaki, R.drawable.wajah, R.drawable.lengan,
                    R.drawable.rambut};
 private  int pilihan_d[] ={R.drawable.pergelangan_kaki, R.drawable.tangan, R.drawable.hidung, R.drawable.pundak, 
          R.drawable.rambut, R.drawable.pundak, R.drawable.tangan, R.drawable.leher, R.drawable.telinga, R.drawable.pergelangan_kaki};

 public static String [] jawaban ={"A","B","B","C","A","C","D","C","C","B"};

   @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.quiz_2);

            player = MediaPlayer.create(this, pertanyaan[indeks]);               
            soal = (Button)this.findViewById(R.id.button2);

            soal.setBackgroundResource(pertanyaan[indeks]);
            soal.setOnClickListener(new View.OnClickListener() {
                @Override
                 public void onClick(View v) {
                     Log.v(TAG,"Playing Sound...");
                    player.start();

             }
             });

          soalnya = (TextView)findViewById(R.id.Soal);
          soalnya.setText(pilihanganda[0]);

          player = MediaPlayer.create(this, pertanyaan[indeks]); 
          imgB=(ImageButton)findViewById(R.id.pilihan2);
          imgC=(ImageButton)findViewById(R.id.pilihan3);
          imgD=(ImageButton)findViewById(R.id.pilihan4);
          imgA=(ImageButton)findViewById(R.id.pilihan1);

          imgA.setImageResource(pilihan_a[indeks]);
          imgA.setOnClickListener(this);
          imgB.setImageResource(pilihan_b[indeks]);
          imgB.setOnClickListener(this);
          imgC.setImageResource(pilihan_c[indeks]);
          imgC.setOnClickListener(this);
          imgD.setImageResource(pilihan_d[indeks]);
          imgD.setOnClickListener(this);

          nomor = (TextView) findViewById(R.id.No);
          nomor.setText("Soal " + no++);

          salahbenar =(TextView)findViewById(R.id.salahbenar);
          salahbenar.setText("");

    }    

如果您有一个数组questions[]或answers[],并且您需要x个问题(例如可能是10个),则可以按原样创建问题列表:

   Random rand = new Random(); 
   int questionLength = 10;    //the number questions you will use
   int[] myList = new int[questionLength];    
   for (int i = 0; i < questionLength; i++) {
       myList[i] =  rand.nextInt( allQuestionlist.size() );
   }
Random rand=new Random();
整数长度=10//您将使用的问题数量
int[]myList=新int[questionLength];
for(int i=0;i
此数组将是随机问题的索引,例如:

   for (int i = 0; i < questionLength; i++) {
       System.out.println( pilihanganda[myList[i]]  ); // printing
   }
for(int i=0;i
如果要使用字符串数组中的某些值,则可以使用以下答案,但如果要使用所有问题,请尝试以下方法:

要以相同的方式洗牌两个数组,请执行以下操作:

private voice Integer [] question = {R.raw.bahu, R.raw.dagu, R.raw.rambut, R.raw.kaki, R.raw.mata, R.raw.telinga, R.raw.gigi, R.raw.wajah, R.raw.lidah, R.raw.hidung};
    long seed = System.nanoTime();
    List<String> questionList = Arrays.asList(question);
    List<String> answerList = Arrays.asList(pilihan_a);
    Collections.shuffle(questionList, new Random(seed));
    Collections.shuffle(answerList, new Random(seed));

    //Now both question and answer array has randomly shuffled elements in it in the same way
    pilihan_a = answerList.toArray(new String[myList.size()]);
    question = questionList.toArray(new String[myList.size()]);
假设下面的数组是您的答案数组

private int pilihan_a [] ={R.drawable.hidung, R.drawable.wajah, R.drawable.rambut, R.drawable.pergelangan_kaki, 
                    R.drawable.telinga, R.drawable.rambut, R.drawable.leher, R.drawable.lengan, R.drawable.rambut
                    , R.drawable.telinga};
然后使用此命令以相同的方式洗牌这两个数组:

private voice Integer [] question = {R.raw.bahu, R.raw.dagu, R.raw.rambut, R.raw.kaki, R.raw.mata, R.raw.telinga, R.raw.gigi, R.raw.wajah, R.raw.lidah, R.raw.hidung};
    long seed = System.nanoTime();
    List<String> questionList = Arrays.asList(question);
    List<String> answerList = Arrays.asList(pilihan_a);
    Collections.shuffle(questionList, new Random(seed));
    Collections.shuffle(answerList, new Random(seed));

    //Now both question and answer array has randomly shuffled elements in it in the same way
    pilihan_a = answerList.toArray(new String[myList.size()]);
    question = questionList.toArray(new String[myList.size()]);
long seed=System.nanoTime();
List questionList=Arrays.asList(问题);
List answerList=Arrays.asList(pilihan_a);
洗牌(问题列表,新随机(种子));
洗牌(应答列表,新随机(种子));
//现在问答数组中的元素都以同样的方式随机洗牌
pilihan_a=answerList.toArray(新字符串[myList.size()]);
question=questionList.toArray(新字符串[myList.size()]);

希望它能解决您的问题。

您想将所有字符串数组随机化为什么?是的,所有字符串和数组,如何解决它们,仍然失败。我想问所有问题是什么?我试图出错,抱歉仍在学习我已经尝试了,但问题和多项选择题以及答案与结果不匹配,我的编码与上述测验相同,我根本没有发现我的问题是私人语音整数[]问题={R.raw.bahu,R.raw.dagu,R.raw.rambut,R.raw.kaki,R.raw.mata,R.raw.telinga,R.raw.gigigi,R.raw.wajah,R.raw.lidah,R.raw.hidung};以及回答类似数组的选项:Pilihan_a,Pilihan_b,Pilihan_c.Pilihan_d,如何像我所做的编码一样随机