2012-03-01 20 views
10

Próbuję zrozumieć, jak dynamicznie dodawać kolumny i wiersze do tabeli tablelayout.Jak dynamicznie tworzyć kolumny w tablelayout?

Mam ten prosty przykład. Jednak pokazuje tylko pierwszą kolumnę po uruchomieniu.

Czy ktoś może mi powiedzieć, czego brakuje, aby wyświetlić cztery kolumny zamiast jednego?

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

} 

Odpowiedz

3

Musisz mieć setText dla każdego tekstu kolumn

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

nie należy zapominać, że każda kolumna potrzebuje nowych TableLayout.LayoutParams(), a także, że był błąd zrobiłem próbując aby dodać bardziej złożony widok do układu tabeli.

newRow.addView(view, new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, 
          TableRow.LayoutParams.WRAP_CONTENT)); 
Powiązane problemy