2012-07-20 81 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); 
    } 
}