2009-09-10 11 views
8

Sto tentando di aggiungere e rimuovere dinamicamente le righe da un TableLayout.Aggiunta e rimozione dinamiche delle righe della tabella - Android

Il layout è definito in un file xml.

Sono in grado di rimuovere correttamente una riga, ma quando chiamo il comando addView corrispondente non accade nulla.

table = (TableLayout)findViewById(R.id.table); 
row = (TableRow)findViewById(R.id.row); 

table.removeView(row); 

table.addView(row); 

Ciò comporta la rimozione di una riga, ma non l'aggiunta di nuovo.

Modifica: Si scopre che è stato aggiunto se, dopo tutto, nella parte inferiore dello schermo anziché nella stessa posizione in cui è stato rimosso.

sono in grado di aggiungerlo nella posizione corretta specificando l'indice:

table.addView(row,4); // 4 happens to the the row 

ma io non riesco a capire come determinare l'indice della riga, non sembra essere un metodo per realizzare questo. qualcuno sa come fare a quello? (ad esempio se non sapevo che l'indice era 4 come potrei capirlo)

Modifica: incluso XML. questo è solo la riga in questione, ci sono altre righe sopra e sotto

<TableRow android:id="@+id/row"> 

     <TextView android:id="@+id/field1" 
      android:text="testing" 
     android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="3dip" 
      android:textStyle="bold" 
      android:textSize="18dip" 
     /> 


     <TextView android:id="@+id/field2" 
      android:padding="3dip" 
      android:text="test" 
      android:textSize="18dip" 
      android:gravity="right" 
     /> 



    </TableRow> 
+0

Il tuo codice funziona bene con un layout di prova. Mi piace vedere il tuo layout XML per commentare ulteriormente. – bhatt4982

+0

Hai righe sopra e sotto la riga in questione? – brodie31k

risposta

1

Usa hierarchyviewer (nella SDK tools/ directory) per determinare se non è realmente essere aggiunta la riga, o viene aggiunto, ma alcuni di layout i parametri sono incasinati e quindi non appare sullo schermo.

+0

Non mi ha aiutato molto qui, ma grazie per il testa a testa non avevo dato un'occhiata al gerarchico prima. – brodie31k

1
public int indexOfChild (View child) 

public View getChildAt (int index) 

Entrambi i metodi forniti da TableLayout. ;-)

Problemi correlati