2011-11-17 5 views
5

Mi piacerebbe sapere quando utilizzare ciascun adattatore. Secondo la mia esperienza, e questo BaseAdapter article è utile quando per esempio ottengo i dati da un'API e lo memorizzo in un oggetto Collection. Tuttavia un CursorAdapter viene usato per interrogare i contenuti da un database, agenda telefonica ... In generale, i contenuti che hanno anche un fornitore di contenuti per interrogare le informazioni su di loro.BaseAdapter vs CursorAdapter

Quindi fondamentalmente un BaseAdapter viene utilizzato per le query che non hanno un fornitore di contenuti per accedervi, perché in tal caso un CursorAdapter sarà la scelta migliore. È giusto?

risposta

9

BaseAdapter, ArrayAdapter, SimpleAdapter ecc sono utilizzati principalmente se si ricevono dati dinamici da una connessione remota (come un servizio Web o API) e possono essere modificati come si desidera.

CursorAdapter viene principalmente utilizzato per file locali o database per interrogare il database e il contenuto di esso. Nel tuo caso CursorAdapter sembra come quello da seguire.

4

La spiegazione di @serdar è quasi giusta, se si ha a che fare con qualsiasi database o dispositivo (come contatti, sms ecc.) Viene utilizzato CursorAdapter e se si desidera creare un elenco personalizzato con immagini e visualizzazioni di testi, ecc. Generalmente si usa BaseAdapter. Se hai a che fare con listview personalizzati più complessi come elenchi di contatti ordinati insieme a Seprater come A, B, C ... allora devi usare EfficientAdapter.

+0

Che dire se si desidera mostrare l'agenda contatti ordinata per nome? È ancora possibile utilizzare il CursorAdapter? – Dayerman

+1

Supponiamo di dover sviluppare un'applicazione che desideri mostrare tutti i contatti salvati nel telefono, quindi interrogare il database dei contatti, i contatti e gli sms vengono salvati sotto forma di tabella SQLite e passando il parametro mentre la query è possibile ottenere quei contatti in ordine ascendente o discendente. – Pawan