2012-03-01 15 views
10

Sto cercando di capire come aggiungere dinamicamente colonne e righe a un tablelayout.Come creare dinamicamente colonne in un tablelayout?

Ho questo semplice esempio. Tuttavia, mostra solo la prima colonna quando viene eseguita.

Qualcuno può dirmi cosa manca per visualizzare quattro colonne anziché una?

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()); 
     } 
    } 

} 

risposta

3

È necessario avere la setText per ciascuno dei testi colonne

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

Non dimenticate che ogni colonna ha bisogno di nuovi TableLayout.LayoutParams(), così, che è stato l'errore che ho fatto provare per aggiungere una vista più complessa a un layout di tabella.

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