2011-09-04 17 views
13

So che questo è già stato chiesto prima, ma nessuna delle altre risposte mi ha aiutato, quindi mi chiederò ...Come cancellare tutte le righe da un TableLayout?

Sto cercando di eliminare tutte le mie righe esistenti da un TableLayout perché voglio l'utente per essere in grado di aggiornare la tabella in modo dinamico. Altri suggerimenti hanno raccomandato l'uso di removeAllViews(), che dovrebbe rimuovere tutte le viste child, tuttavia questo elimina le righe dalle altre tabelle nello stesso LinearLayout (ho un layout lineare con più tabelle).

Qualche suggerimento?

risposta

46

Sembra che si possa chiamare removeAllViews() nel complesso LinearLayout e non il particolare TableLayout che si desidera cancellare. Assicurati di qualche cosa come:

myLinearLayout.someTableView.removeAllViews()

+0

No, sono decisamente a chiamare il mio TableLayout ... \t \t tl = (TableLayout) dialog.findViewById (R.id.afi_waist_table); \t \t tl.removeAllViews(); –

+0

Ed ecco i miei layout: http://imagebin.org/171056 –

+0

Cambiato il mio codice un po 'e sono riuscito a rimuovere removeAllViews(). –

10

è necessario chiamare removeAllViews() su ogni 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

Il tuo suggerimento rimuoverà tutte le sottoview della riga ma non la riga stessa. Il layout della tabella verrà lasciato con righe vuote. – SK9

+0

Lo so, questo è quello che pensavo che il poster originale volesse. –

Problemi correlati