如何复制视图以填充列表和表?

时间:2010-09-07 21:17:26

标签: android

我有一个关于Android将布局分离到layout.xml文件的一般问题:

我的应用需要显示一个表,其中行数和列数在运行时会有所不同。 到目前为止,我在相应的layout / .... xml文件中进行了TableView的布局,然后根据需要在运行时将TableRow-s和单元格(TextView)添加到表中。以编程方式添加行和单元格的缺点是,以后无法真正更改设计(例如更改单元格的颜色或边距),而无需稍后修改代码。

我想做的是向表中添加一行,将单个单元格添加到布局文件中的行,然后将它们用作“模式”或模板,以生成所有实际表的行和单元格。这将允许在layout.xml文件中指定颜色和其他参数(因此也可以在以后更改它们而无需更改代码)但仍允许任意数量的列和单元格。

但是,我在Views中找不到“copy”--constructor或“duplicate”-method。怎么能实现这个目标?从单个“示例”或模板元素创建列表或表的建议方法是什么?还是有另一种方法来实现我想要的东西?

希望我能说清楚...... 迈克尔

1 个答案:

答案 0 :(得分:8)

通常使用TableLayout或ListView,您可以为该行创建布局xml文件,然后以编程方式为每个实例充气。

LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

TableRow rowView = (TableRow)inflater.inflate(R.layout.my_row, null);
table.addRow(rowView);