Как установить 2D-массив для радио кнопки? - PullRequest
0 голосов
/ 23 сентября 2019
    String[][] choices = {
           {
                   "A",
                   "c",
                   "A"
           },
           {
                   "A",
                   "c",
                   "A"
           },
           {
                   "A",
                   "c",
                   "A"
           },
           {
                   "A",
                   "c",
                   "A"
           },
           {
                   "A",
                   "c",
                   "A"
           },
           {
                   "A",
                   "c",
                   "A"
           },
           {
                   "A",
                   "c",
                   "A"
           },
           {
                   "A",
                   "c",
                   "A"
           },
           {
                   "A",
                   "c",
                   "A"
           },
           {
                   "A",
                   "c",
                   "A"
           }
   };

У меня есть двумерный массив с 10 строками и 3 столбцами.как я могу установить текст каждой радиокнопки для рекламы в строке.

    for(int i = 0; i < NUM_OF_CHOICES-1; i++){
      buttons[i].setText(choices[currentQuestNum - 1][i]);
      }
//buttons[] array of radio button

//NUM_OF_CHOICES = 11

это то, что я пробовал, но в logcat отображается ArrayIndexOutOfBoundException: length=3; index=3.

Как я могу решить эту проблему.

Ответы [ 3 ]

0 голосов
/ 23 сентября 2019

Вам нужно использовать два цикла вместо одного, так как в вашем массиве соответствий есть три значения, и вы используете I, то есть размер массива выбора, так что очевидно, что это ошибка.

Использование -

for (int i = 0; i < ARRAY_SIZE; i++) {
   for (int j = 0; j < YOUR_ARRAY[i].size; j++) {
       button[i].setText(YOUR_ARRAY[i][j]);
   }
}
0 голосов
/ 24 сентября 2019
  String[] subArray = choices[currentQuestNum-1];
   for(int j=0;j<subArray.length;j++)
   {
      String item=subArray[j];
      buttons[j].setText(item);
   }

так я получил решение для моего вопроса.

0 голосов
/ 23 сентября 2019

Попробуйте следующий код.Также дважды проверьте массив кнопок и убедитесь, что вы добавляете столько же кнопок, сколько и строк.

for(int i=0;i < radioButtonsArray.length ;i++){  
    for(int j = 0; j < columnCount; j++){
         buttons[i].setText(choices[i][j]);
      }
}
...