动态地将列添加到tablerow。在循环中添加textview。 settext无法正常工作

时间:2012-01-12 05:33:07

标签: android android-layout

我有一个包含9行的表格布局。第一个是标题。但是列的数量不同。所以我需要动态地将textview添加到表格行。 我填充表格行并添加固定的第一列的文本。其他coulmns iam试图在循环中添加它。但我只得到第一个牢房。

我的预期出局是这样的:

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>

我有另一个用于textview的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&lt; = 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( “栏#”);

            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 个答案:

答案 0 :(得分:6)

为此创建一个视图组行

mCell = new CellViewGroup(this,parameters);

和 请参阅xml

中的表格布局
 mTableLayout = (TableLayout) findViewById(R.id.mytable);

动态创建表格行

TableRow mRow = new TableRow(this);

将视图组添加到行

mRow.addView(mCell);

将其添加到表格布局

mTableLayout.addView(mRow);

如果你不了解viewgroup只是google it .....