Forcequit при попытке заполнить 3 TableViews в Android с Java - PullRequest
0 голосов
/ 15 января 2012

Я занимаюсь разработкой приложения, которое должно создать в общей сложности 15 TableRows в 3 различных TableLayouts. Каждая таблица будет иметь 2 столбца и 5 строк в каждом. У меня есть массив TableLayouts с тремя индексами. Массив является общедоступным статическим, и различные TableLayouts определены в методе onCreate. Ниже мой код. Сначала я создаю экземпляры TableRow для всех индексов в массиве TableRow []. Затем мы создаем еще один массив типа TextView, который я заполняю 30 экземплярами TextView. Затем я начинаю устанавливать значения текстовых представлений с большим циклом for.

Моя проблема в том, что цикл только возвращается к l = 10. Значение i никогда не превышает 0. Это только дает мне принудительное завершение, прежде чем я собираюсь увеличиваться. Что я делаю не так?

public static void setLayout(Context context)
{   

    TableRow[] rows = new TableRow[15];;
    for(int i=0;i<5;i++)
    {
        rows[i] = new TableRow(context);
        rows[i].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
        rows[i].setId(i);
    }

    TextView[] tmp = new TextView[30];
    for(int t = 0; t < 30; t++)
    {
        tmp[t] = new TextView(context);
        tmp[t].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
        tmp[t].setId(t);
    }       

    int p = 0, l = 0;

    for(int i=0;i<3;i++) 
    {
        for(int j=0;j<5;j++) 
        {
            for(int k=0;k<2;k++)
            {
                tmp[p].setText(scores[i][j][k]);

                tmp[p].setLayoutParams(new TableRow.LayoutParams(k));

                rows[l].addView(tmp[p]);

                p++;
            }
            tables[i].addView(rows[l]);
            l++;

        }
    }

}
...