如何在tablelayout中动态创建列?

问题描述:

我想了解如何动态添加列和行到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()); 
     } 
    } 

} 

你需要具备的setText对于每一列文

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

不要忘记,每列需要新TableLayout.LayoutParams()为好,这是我做了尝试错误将更复杂的视图添加到表格布局。

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