我的应用必须在2D网格中显示数据。网格可以有多个行和列(10乘10或100乘44)。网格必须显示列和行的名称。如何为Android创建数据网格?
基本上我想从Windows窗体和WPF的DataGridView的东西。
请提供帮助。谢谢。
我的应用必须在2D网格中显示数据。网格可以有多个行和列(10乘10或100乘44)。网格必须显示列和行的名称。如何为Android创建数据网格?
基本上我想从Windows窗体和WPF的DataGridView的东西。
请提供帮助。谢谢。
如果您有一些确定的行数和列数,并且该数字不是很大,那么当您可能对TableLayout确定时,只需在循环中或部分延迟地创建它即可。 否则(如果需要的行数/列数不清或您需要某些特定的滚动)将需要自定义控件。
您应该使用TableLayout
,动态地添加TableRow
与尽可能多的TextView
s对应于您希望添加的列。为了使网格看起来,你应该添加一个可绘制的形状作为每个TextView
的背景可绘制白色线条以获得单元格。
样品: 在layout.xml:
...
<TableLayout id="grid" *other properties*/>
...
具有所有必要的属性的简单对象数据:
class Data {
ArrayList<Row> rows;
ArrayList<Column> column;
//or some other properties you might need
}
在
Activity
:
private void fillGrid(Data dat,) {
for(int i=0; i<dat.getRows().size(); i++) {
TableRow row = new TableRow(this);
//set row
for(int j=0; j<dat.getColumns().size(); j++) {
TextView actualData = new TextView(this);
//set properties
row.addView(actualData);
}
tableLayout.addView(row);
}
}
我会建议创建一个列表视图并在其中添加数据。
这里是在回答另一个问题 Populating a table with an array of data
下面一个例子是原生的Android DataGrid组件,它非常类似于Windows窗体DataGridView,并提供了其大部分功能。 androidjetpack.com/Home/AndroidDataGrid – 2014-08-24 03:17:55