包含在表格的XML布局中的ID

时间:2012-01-06 21:43:45

标签: android xml

如果我计划单独动态更新单元格,我应该如何实现15乘15单元格的表?

我开始在main.xml中创建表,但我不想在每个代码体中描述包含15个TableRow元素和15个元素的表。我觉得甚至把桌子本身放在一个单独的文件中太笨重了。可以创建一个行的文件和一个包含该行的表的文件15次,并为每个单元格动态分配不同的ID?

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

public void generateTable() {
    TableLayout tv = new TableLayout(context);

    for (int y = 0; y < 15; y++) {
        TableRow tr = new TableRow(context);
        for (int x = 0; x < 15; x++) {
            TextView tv = new TextView(context);
            tr.addView(tv);
            tv.setText("ID: " + (y*15 + x));
            tv.setId(y*15 + x);
            // And to allow for easy reading
            if (y*15+x % 2 == 0)
                tv.setBackgroundColor(0xffff0000);
            else
                tv.setBackgroundColor(0xff0000ff);
        }
    }
}

答案 1 :(得分:0)

从xml

创建这样的表格布局
TableLayout tl = (TableLayout) findViewById(R.id.content_table);

您可以在xml中创建一个表行作为tablerow.xml。这将帮助您以更简单的方式定义表行布局。我只添加了1个TextView。

<TableRow xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:id="@+id/content"
    android:singleLine="false"
    />

LayoutInflater inflater = getLayoutInflater();

    for (int rowID = 0; rowID < 15; rowID++) {
      TableRow row = (TableRow)inflater.inflate(R.id.tablerow, tl, false);
      TextView content = (TextView)row.findViewById(R.id.content);
      content.setId(rowID); 
      content.setText("this is the content"); 
      tl.addView(row);
    }