2012-07-20 75 views
3

我的应用必须在2D网格中显示数据。网格可以有多个行和列(10乘10或100乘44)。网格必须显示列和行的名称。如何为Android创建数据网格?

基本上我想从Windows窗体和WPF的DataGridView的东西。

请提供帮助。谢谢。

+0

下面一个例子是原生的Android DataGrid组件,它非常类似于Windows窗体DataGridView,并提供了其大部分功能。 androidjetpack.com/Home/AndroidDataGrid – 2014-08-24 03:17:55

回答

2

如果您有一些确定的行数和列数,并且该数字不是很大,那么当您可能对TableLayout确定时,只需在循环中或部分延迟地创建它即可。 否则(如果需要的行数/列数不清或您需要某些特定的滚动)将需要自定义控件。

+0

所以我应该添加许多textViews到一个表。 – jas7 2012-07-20 06:51:07

+0

是的,使用TableLayout时。如果您打算为此目的创建自己的视图,那么应该可以为它创建自己的适配器。 – sandrstar 2012-07-20 06:59:12

4

您应该使用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); 
    } 
} 
相关问题