无法在Android中使用标题(列和行)创建多个行

时间:2014-01-14 04:39:05

标签: android matrix android-tablelayout

我在创建具有相应单元格值的列和行的标题时遇到问题。仅显示列和行中的最后位置值。

ScrollView sv = new ScrollView(this);

TableLayout ll = new TableLayout(this);
HorizontalScrollView hsv = new HorizontalScrollView(this);

String[] row = { "ROW1", "ROW2", "Row3", "Row4", "Row 5", "Row 6", "Row 7" };
String[] column = { "COLUMN1", "COLUMN2", "COLUMN3", "COLUMN4", "COLUMN5", "COLUMN6" };

int nor = row.length;
int noc = column.length;

TextView tv = new TextView(this);
tv.setText("Matrix Implemention Test");

for (int i = 0; i < nor; i++) 
{ // for rows
    TableRow tbrow = new TableRow(this);

    for (int j = 0; j <= noc; j++) 
    { // for columns
        TextView tv1 = new TextView(this);
        String s1 = Integer.toString(i);
        String s2 = Integer.toString(j);
        String s3 = s1 + s2;
        int id = Integer.parseInt(s3);

        //   tv1[i][j].setId(id);
        if (i == 0 & j==0) {
            tv1.setText("0=0");
            Log.d("TAH", "Display00!!!");
        } else if (i == 0) {
            for (int r = 0; r < nor; r++) {
                tv1.setText(row[r]);
                Log.d("TAG", "i==0->"+row[r]);
            }
        } else if (j == 0) {
            for (int c = 0; c < noc; c++) {
                tv1.setText(column[c]);
                Log.d("TAG", "j==0->"+row[c]);
            }
        } else {
            tv1.setText("Table Cell No=>>  " + id);
        }

        tbrow.addView(tv1);
    }

    ll.addView(tbrow);
}

hsv.addView(ll);
sv.addView(hsv);
setContentView(sv);

这样的输出:我想要列和行的相应标题。第1行,第2行....和第1列,第2列....依此类推。但只有最后一个位置值显示在代码上方。

enter image description here

1 个答案:

答案 0 :(得分:0)

将您的代码更改为:

 for (int i = 0; i < nor; i++) { // for row

            TableRow tbrow = new TableRow(this);

            for (int j = 0; j <= noc; j++) { // for column
                TextView tv1 = new TextView(this);
                String s1 = Integer.toString(i);
                String s2 = Integer.toString(j);
                String s3 = s1 + s2;
                int id = Integer.parseInt(s3);
            //   tv1[i][j].setId(id);
                if (i == 0 & j==0) {
                    tv1.setText("0=0");
                    Log.d("TAH", "Display00!!!");
                } else if (i == 0) {

                        tv1.setText(column[j]);

                } else if (j == 0) {

                        tv1.setText(row[i]);

                } else {
                    tv1.setText("Table Cell No=>>  " + id);
                }
                tbrow.addView(tv1);
            }
            ll.addView(tbrow);
        }

首先,您似乎将列与行混淆,所以我更正了。

第二次注意这个循环:

 for (int r = 0; r < nor; r++) {
                        tv1.setText(row[r]);
                        Log.d("TAG", "i==0->"+row[r]);
                    }

缺失。

这里首先将row [0]值设置为tv1,然后将行[1]设置为......依此类推。

最后,tv1将行[6]作为最后一个值。