2011-01-25 20 views
6

Sto provando ad impostare un'immagine GridView Layout, e questo implica derivare una nuova classe dalla classe BaseAdapter. Ho usato il tutorial sul sito web developer.android.com, ma ancora non capisco cosa significhi. Qualcuno potrebbe spiegarmi che cos'è esattamente un BaseAdapter? Non capisco la definizione fornita dal sito web degli sviluppatori Android.Capire i BaseAdapters e come usarli

Grazie

risposta

3

http://developer.android.com/resources/tutorials/views/hello-gridview.html

Il GridView è una sottoclasse di un tipo di vista noto come AdapterView. Questi generalmente contengono un numero di Viste più piccole, ma si basano su un Adattatore per fornire tali Visualizzazioni. La classe BaseAdapter è una classe che estendi per sostituire i metodi che indicano ad AdapterView (la tua GridView) cosa visualizzare. Il metodo più importante per eseguire l'override è il metodo getView(), in cui si restituisce la visualizzazione da visualizzare in una posizione particolare sulla griglia.

Mentre questa configurazione è un po 'confusa e complicata, gli sviluppatori di Android hanno scelto questo a causa di tutte le ottimizzazioni consentite. Un sacco di ottimizzazione per AdapterViews si ottiene riutilizzando Views invece di crearne di nuove nel metodo getView. Questo è ciò che l'argomento convertView è possibile vedere nel metodo getView. Se convertView == null, il metodo deve creare un nuovo oggetto View e restituirlo, un'operazione costosa. Se non è nullo, l'adattatore può riutilizzare la vista, semplicemente cambiando l'immagine nell'esempio di esercitazione.

19

Un adattatore viene utilizzato per associare dati a una vista. Vedere AdapterView:

Un AdapterView è una vista i cui figli sono determinati da un adattatore.

Diversi punti di vista del layout derivano da AdapterView come GridView, ListView e Galleria.

Naturalmente, in genere non utilizzare AdapterView e Adapter direttamente, ma piuttosto utilizzare o derivare da una delle loro sottoclassi. Le sottoclassi di Adapter possono aggiungere funzionalità aggiuntive che cambiano il modo in cui è necessario associare i dati alla vista.

BaseAdapter è una classe base astratta per l'interfaccia Adapter per semplificare l'implementazione degli adattatori. Potresti implementare il tuo, ma il framework fornisce già degli adattatori piuttosto flessibili. Alcuni adattatori popolari sono:

ArrayAdapter,

  • lega una matrice di dati a una visione
  • esclusione getView() per gonfiare, popolare, e restituisce una visualizzazione personalizzata per l'indice indicato nella array. Il metodo getView() include una vista di riutilizzo delle opportunità tramite il parametro convertView.

CursorAdapter,

  • lega i dati da un cursore (come un cursore di database) per una vista
  • astratta in modo da non utilizzare direttamente, utilizzare una sottoclasse o derivare il proprio
  • implementare il metodo astratto newView() per gonfiare, popolare e restituire la vista desiderata per la posizione corrente del cursore e implementare il metodo astratto bindView popolare una vista esistente che viene riutilizzata ..

SimpleCursorAdapter,

  • un'implementazione concreta di CursorAdapter
  • può richiedere un layout di riga e una mappatura delle colonne cursore per allineare i widget di layout
  • supporta testo e immagini, ma è possibile personalizzare utilizzando setViewText e setViewImage
  • può supportare altri tipi e può personalizzare i collegamenti tramite un hook: i client implementano l'interfaccia SimpleCursorAdapter.ViewBinder con un metodo setViewValue() per gonfiare, popolare e restituire la vista desiderata per una determinata riga (stato attuale del cursore) e dati "colonna". Questo metodo può definire solo le viste e le associazioni "speciali", ma comunque rimandare al comportamento standard di SimpleCursorAdapter per i binding "normali".
Problemi correlati