2009-09-10 9 views
8

Ich versuche, Zeilen dynamisch aus einer TableLayout hinzuzufügen und zu entfernen.Tabellenreihen dynamisch hinzufügen und entfernen - Android

Das Layout ist in einer XML-Datei definiert.

Ich bin in der Lage, eine Zeile erfolgreich zu entfernen, aber wenn ich den entsprechenden AddView-Befehl aufrufen passiert nichts.

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

table.removeView(row); 

table.addView(row); 

Dies führt dazu, dass eine Zeile entfernt, aber nicht erneut hinzugefügt wird.

Bearbeiten: Es stellt sich heraus, es wurde hinzugefügt, wenn schließlich, nur am unteren Rand des Bildschirms statt an der gleichen Stelle, wie es entfernt wurde.

Ich bin die Lage, es in der richtigen Position hinzufügen, indem Sie den Index festgelegt wird:

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

aber ich kann nicht herausfinden, wie der Index der Zeile, um zu bestimmen, scheint es keine Methode zu sein, um das zu erreichen. Weiß jemand wie das geht? (dh. wenn ich nicht wusste, der Index war 4, wie könnte ich das herausfinden)

Edit: enthalten XML. das ist nur die Reihe in Frage, es gibt andere Zeilen darüber und darunter

<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

Ihr Code funktioniert gut mit einem Testlayout. Möchten Sie Ihr XML-Layout sehen, um es weiter zu kommentieren. – bhatt4982

+0

Hatten Sie Zeilen über und unter der fraglichen Zeile? – brodie31k

Antwort

1

Verwenden hierarchyviewer (in Ihrem SDK tools/-Verzeichnis), um zu bestimmen, ob die Zeile wirklich nicht hinzugefügt werden oder hinzugefügt wird, aber einige Layouts Die Parameter sind durcheinander und erscheinen nicht auf dem Bildschirm.

+0

Hatte hier nicht ganz geholfen, aber danke für den Heads-up habe ich mir vorher noch keinen hierarchyviewer angeschaut. – brodie31k

1
public int indexOfChild (View child) 

public View getChildAt (int index) 

Beide Methoden von TableLayout bereitgestellt. ;-)

Verwandte Themen