2012-03-01 75 views
10

我想了解如何動態添加列和行到tablelayout。如何在tablelayout中動態創建列?

我有這個簡單的例子。但是,它只顯示運行時的第一列。

有人能告訴我什麼是缺少的,以顯示四列而不是一個?

package com.apollo.testtablelayout; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TableLayout; 
import android.widget.TableRow; 
import android.widget.TextView; 

public class TestTableLayoutActivity extends Activity { 
    /** Called when the activity is first created. */ 

    String col1; 
    String col2; 
    String col3; 
    String col4; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     TableLayout tl = (TableLayout) findViewById(R.id.tableLayout1); 

     for (int x = 1; x < 10; x++) { 

      col1 = "(" + x + ") Column 1"; 
      col2 = "(" + x + ") Column 2"; 
      col3 = "(" + x + ") Column 3"; 
      col4 = "(" + x + ") Column 4"; 

      TableRow newRow = new TableRow(this); 

      TextView column1 = new TextView(this); 
      TextView column2 = new TextView(this); 
      TextView column3 = new TextView(this); 
      TextView column4 = new TextView(this); 

      column1.setText(col1); 

      newRow.addView(column1); 
      newRow.addView(column2); 
      newRow.addView(column3); 
      newRow.addView(column4); 

      tl.addView(newRow, new TableLayout.LayoutParams()); 
     } 
    } 

} 

回答

3

你需要具備的setText對於每一列文

column1.setText(col1); 
column2.setText(col2); 
column3.setText(col3); 
column4.setText(col4); 
0

不要忘記,每列需要新TableLayout.LayoutParams()爲好,這是我做了嘗試錯誤將更復雜的視圖添加到表格佈局。

newRow.addView(view, new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, 
          TableRow.LayoutParams.WRAP_CONTENT));