Динамическое добавление столбцов в таблицу. Добавление текстовых просмотров в цикле. Settext не работает - PullRequest
0 голосов
/ 12 января 2012

У меня есть макет таблицы с 9 строками.Первый для заголовка.но количество столбцов не меняется.поэтому мне нужно добавить textview динамически в строку таблицы.Я раздуваю строку таблицы и добавляю текст для первого столбца, который исправлен.я пытаюсь добавить его в цикл.но я получаю только первую ячейку.

мой ожидаемый результат такой:

col#   A   B   C   D  E  F
----------------------------
1      65  6   6   5  6  7
----------------------------
2      6  4   7   4  6  8

количество столбцов не может быть от 3 до 6. но строка равна 8

я получаю выход, как это:

 col#   
    ----------------------------
    1   
    ----------------------------
    2   

Я пытаюсь отобразить первый ряд.но я получаю только первую клетку.кто-нибудь может помочь?

мой XML с строкой таблицы

<?xml version="1.0" encoding="utf-8"?>

  <TableRow xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
        <TextView android:id="@+id/sn4"
                    android:textSize="25sp"
                    android:layout_marginTop="15dip"
                    android:layout_marginLeft="20dip"
                    style="@style/normalText"
                    android:textColor="@color/title"
             />



</TableRow>

у меня есть другой XML для просмотра текста

<?xml version="1.0" encoding="utf-8"?>


    <TextView   xmlns:android="http://schemas.android.com/apk/res/android" 
                android:id="@+id/txtfactor"
                android:textSize="25sp"
                android:layout_marginTop="15dip"
                android:layout_marginLeft="20dip"
                style="@style/normalText"
                android:textColor="@color/title"
         />

в моем коде:

tbl = (TableLayout) findViewById (R.id.tbltrail);for (int i = 0; i <= noOfTrials; i ++) {TableRow child = (TableRow) getLayoutInflater (). inflate (R.layout.trial_table, null);child.setId (я);TextView sno = (TextView) child.findViewById (R.id.sn4);if (i == 0) {sno.setText ("Col #"); </p>

            for(int j=0; j<count; j++){
                FactorObj factorObj = factorList.get(i);
                View row = (View) getLayoutInflater().inflate(R.layout.trial_row_content, null);
                TextView factorname = (TextView)row.findViewById(R.id.txtfactor);
                factorname.setId(200+j);
                Log.v(null, "factor name "+factorObj.getFactorName());
                factorname.setText("sdf");
                child.addView(row);



            }
            tbl.addView(child);


        }else{
            sno.setText(String.valueOf(i));
            for(int j=0; j<count; j++){
                FactorObj factorObj = factorList.get(i);
                View row = (View) 

                getLayoutInflater().inflate(R.layout.trial_row_content, null);
                TextView factorname = (TextView)row.findViewById(R.id.txtfactor);
                factorname.setId(100+j);
                factorname.setText("ss");
                child.addView(row);


            }
            tbl.addView(child);
        }

    }

1 Ответ

6 голосов
/ 12 января 2012

Для этого создайте группу представлений строк

mCell = new CellViewGroup(this,parameters);

и обратитесь к макету таблицы из xml

 mTableLayout = (TableLayout) findViewById(R.id.mytable);

, чтобы динамически создать строку таблицы

TableRow mRow = new TableRow(this);

добавитьгруппа представлений в строке

mRow.addView(mCell);

добавьте ее в макет таблицы

mTableLayout.addView(mRow);

, если вы не знаете о группе представлений, просто погуглите ее .....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...