如果我计划单独动态更新单元格,我应该如何实现15乘15单元格的表?
我开始在main.xml中创建表,但我不想在每个代码体中描述包含15个TableRow元素和15个元素的表。我觉得甚至把桌子本身放在一个单独的文件中太笨重了。可以创建一个行的文件和一个包含该行的表的文件15次,并为每个单元格动态分配不同的ID?
答案 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);
}