2010-07-28 10 views
18

Ho intenzione di creare una griglia di immagini e sto cercando di capire se utilizzare un adattatore di array o un baseadaptor. Mentre lo GridView example memorizza i dati in un array, utilizza un BaseAdapter piuttosto che un ArrayAdaptor. Sono curioso di sapere perché è così. Una cosa che ho notato di un ArrayAdapter, è che il suo costruttore prende uno textViewResourceId per qualche motivo sconosciuto - sebbene la documentazione dica che il getView può essere usato per farlo funzionare anche con altri tipi di viste. Quindi, se voglio una griglia fissa di immagini per un menu, quale classe consiglieresti di scegliere?BaseAdapter o ArrayAdaptor - Android

risposta

48

Generalmente si sceglie la classe dell'adattatore in base a quali sono i dati del modello. Se si dispone di un ArrayList oggetti, utilizzare ArrayAdapter. Se si dispone di un Cursor da una query di database, utilizzare un CursorAdapter. BaseAdapter può essere utilizzato per qualsiasi cosa, ma richiede più codice, dal momento che non ha una conoscenza innata su come iterare sui dati.

+0

Se utilizzo 'ArrayAdaptor', cosa devo fare con' textViewResourceId' dato che sto usando immagini piuttosto che testo? – Casebash

+1

@Casebash: ignoralo, sovrascrivi 'getView()' e restituisci quello che ti serve. – CommonsWare

+0

Ma devi passare qualcosa. Funzionerebbe 0 o sarebbe -1 essere migliore? – Casebash

Problemi correlati