2009-09-10 13 views
8

Estoy intentando agregar y eliminar dinámicamente filas de un TableLayout.Adición y eliminación dinámicas de filas de tablas: Android

El diseño se define en un archivo xml.

Soy capaz de eliminar correctamente una fila, pero cuando llamo al comando addView correspondiente no pasa nada.

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

table.removeView(row); 

table.addView(row); 

Esto provoca que se elimine una fila, pero que no se vuelva a agregar.

Editar: Resultó que estaba agregando, si después de todo, solo en la parte inferior de la pantalla en lugar de en la misma ubicación desde la que se eliminó.

Puedo añadir que en la posición correcta especificando el índice:

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

pero no puedo encontrar la manera de determinar el índice de la fila, no parece haber un método para lograr esto. Alguien sabe cómo hacer eso? (es decir, si no sabía que el índice era 4, ¿cómo podría averiguarlo?)

Edición: XML incluido. esto es sólo la fila en cuestión, hay otras filas por encima y por debajo de ella

<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

Tu código funciona bien con un diseño de prueba. Desea ver su diseño XML para seguir comentando. – bhatt4982

+0

¿Tiene filas arriba y debajo de la fila en cuestión? – brodie31k

Respuesta

1

Uso hierarchyviewer (en su SDK tools/ directorio) para determinar si es verdad que no se añade la línea, o se está añadiendo pero algunos diseño los parámetros están en mal estado y, por lo tanto, no aparecen en la pantalla.

+0

No fue de mucha ayuda aquí, pero gracias por el aviso no he echado un vistazo antes al hierarchyviewer. – brodie31k

1
public int indexOfChild (View child) 

public View getChildAt (int index) 

Ambos métodos proporcionados por TableLayout. ;-)

Cuestiones relacionadas