2011-09-04 26 views
13

Sé que esto ya se ha preguntado antes, pero ninguna de las otras respuestas me ha ayudado, así que me pregunto ...¿Cómo borrar todas las filas de un TableLayout?

Estoy tratando de eliminar todas mis filas existentes de una TableLayout porque quiero el usuario para poder actualizar la tabla dinámicamente. Otras sugerencias han recomendado usar removeAllViews(), que se supone que elimina todas las vistas secundarias, sin embargo, esto elimina las filas de mis otras tablas en el mismo LinearLayout (tengo un diseño lineal con varias tablas).

¿Alguna sugerencia?

Respuesta

46

Parece que está llamando al removeAllViews() en total LinearLayout y no al particular TableLayout que desea borrar. Asegúrate de haber algo como:

myLinearLayout.someTableView.removeAllViews()

+0

No, definitivamente estoy llamando a mi TableLayout ... \t \t tl = (TableLayout) dialog.findViewById (R.id.afi_waist_table); \t \t tl.removeAllViews(); –

+0

Y aquí están mis diseños: http://imagebin.org/171056 –

+0

Cambié mi código un poco y pude hacer que removeAllViews() funcionara. –

10

es necesario llamar a removeAllViews() en cada TableRow:

int count = table.getChildCount(); 
for (int i = 0; i < count; i++) { 
    View child = table.getChildAt(i); 
    if (child instanceof TableRow) ((ViewGroup) child).removeAllViews(); 
} 
+0

Su sugerencia eliminará todas las subvistas de la fila pero no la misma. El diseño de la tabla se quedará con filas vacías. – SK9

+0

Lo sé, eso es lo que pensé que el cartel original quería. –

Cuestiones relacionadas