Qual è il ruolo degli adattatori in Android?


123

Voglio sapere quando , dove e come vengono utilizzati gli adattatori nel contesto di Android.

Le informazioni dalla documentazione per gli sviluppatori di Android erano insufficienti per me e vorrei ottenere un'analisi più dettagliata.

Risposte:


29

Supponiamo che tu voglia visualizzare un elenco nella tua app Android. Per questo utilizzerai il ListViewfornito da Android. ListViewin realtà non contengono dati stessi. È solo un elemento dell'interfaccia utente senza dati al suo interno. Puoi popolare i tuoi messaggi ListViewutilizzando un adattatore Android.

Adapterè un'interfaccia le cui implementazioni forniscono dati e controllano la visualizzazione di tali dati. ListViewadattatori propri che controllano completamente il ListViewdisplay di. Quindi gli adattatori controllano il contenuto visualizzato nell'elenco e il modo in cui visualizzarlo.

L' Adapterinterfaccia include vari metodi per comunicare i dati a ListView. Puoi creare il tuo adattatore da zero implementando BaseAdapter.

public class ArrayAdapter<T> extends BaseAdapter implements Filterable {

// One of the constructors
public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) {
    init(context, resource, textViewResourceId, Arrays.asList(objects));
}

void manyMoreMethods(){} 

}

Definiamo un adattatore:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
   android.R.layout.simple_list_item_1, android.R.id.text1, values);
  • Primo parametro: contesto
  • Secondo parametro: layout per la riga
  • Terzo parametro: ID del TextViewsu cui vengono scritti i dati
  • Quarto parametro: la matrice di dati

45

Gli adattatori in Android sono fondamentalmente un ponte tra i componenti dell'interfaccia utente e l'origine dati che inseriscono i dati nel componente dell'interfaccia utente

Ad esempio, gli elenchi (componente UI) vengono popolati utilizzando un adattatore elenco, da una matrice di origine dati.


21
Queste sono le stesse informazioni che posso ottenere dalla documentazione. Ma voglio una spiegazione dettagliata
Robin

25

Vorrei condividere la mia comprensione.

È un'interfaccia tra l'origine dati e il layout (molto probabilmente ListView).

Un'analogia

Facciamo l'esempio di un caricatore mobile, o meglio un cavo USB. Il filo può essere considerato come l'adattatore, mentre la sorgente dati e il layout possono essere intesi rispettivamente come presa (punto di collegamento) e porta USB (punto di ricarica).

Nel caso della ricarica mobile, la fonte di alimentazione può essere diversa, ad esempio la ricarica da un power bank, una presa o un laptop. Lo stesso vale per gli adattatori utilizzati in Android. L'origine dati può essere modificata a seconda dei requisiti dell'applicazione.

In breve, un adattatore in Android trasporta i dati da una sorgente (ad esempio ArrayList<>) e li consegna a un layout (file .xml).


2
Il miglior esempio finora: D Buon lavoro!
Daksh Gargas

8

Gli adattatori in Android sono un ponte tra la visualizzazione dell'adattatore (ad esempio ListView) ei dati sottostanti per quella vista. Immagina cosa sarebbe stato il mondo senza adattatori!

Esempi

  • Una vista che mostra gli elementi in un elenco a scorrimento verticale. Gli elementi provengono da ListAdapterassociati a questa visualizzazione.

  • Il ListAdapterdefinisce il layout per le singole righe della lista e fornisce i dati ListViewtramite il setAdapter()metodo di ListView.

  • Android fornisce diversi adattatori standard; i più importanti sono ArrayAdaptere CursorAdapter.

  • ArrayAdapter può gestire dati basati su array o elenchi.

  • SimpleCursorAdapter può gestire i dati relativi al database.

4

Gli adattatori sono fondamentalmente utilizzati per fornire contenuti. Un adattatore che probabilmente hai in ogni applicazione è il CursorAdapter che ti consente di fornire il contenuto dato da un cursore da una query di database. Un ListView ha quasi sempre una sorta di adattatore.


7
Queste sono le stesse informazioni che posso ottenere dalla documentazione. Ma voglio una spiegazione dettagliata
Robin

@Robin: perché non festeggi il decimo anniversario della tua domanda "accettando" una delle risposte. Personalmente: 1) ho trovato la tua domanda preziosa (è così che sono finito qui), 2) ho trovato utili molte di queste risposte (inclusa questa) ... e 3) non ho la più pallida idea di cosa intendi con " una spiegazione più dettagliata ". Forse è perché sono più interessato al "perché" (come spiegato sopra) .; Sono più interessato alla "foresta" (come la risposta di WarrenFaith) che agli "alberi dettagliati" (che POSSO ottenere dalla documentazione). Si prega di votare e accettare :)
FoggyDay

4

Un adattatore funge da ponte tra un AdapterViewe i dati sottostanti per quella vista. L'adattatore fornisce l'accesso agli elementi di dati ed è responsabile della creazione di una vista per ogni elemento nel set di dati.

Gli adattatori sono un modo intelligente per connettere un Viewcon qualche tipo di origine dati. In genere, la tua vista sarebbe a ListViewe i dati sarebbero in forma di Cursoro Array. Quindi gli adattatori sono sottoclassi di CursorAdaptero ArrayAdapter.


2

Un adattatore gestisce il modello dati e lo adatta alle singole righe nella visualizzazione elenco. Estende la BaseAdapterclasse.

Ogni riga nella visualizzazione elenco consiste in un layout che può essere complesso quanto desideri. Una riga tipica in una visualizzazione elenco ha un'immagine sul lato sinistro e due righe di testo al centro.


0

L'adattatore viene semplicemente utilizzato per ottenere il concetto di listview. Non solo per visualizzare l'elenco dei dati, ma anche per alcune visualizzazioni personalizzate. Supponiamo che il cliente desideri utilizzare l'elenco che ha un numero maggiore di visualizzazioni di testo (qualsiasi altra visualizzazione), quindi dobbiamo utilizzare la visualizzazione Adapter in Android.


0

Sono già state date risposte multiple, ma voglio dare una risposta diversa.

Adapter significa che puoi che il suo provider di bridge .

Gli adattatori sono il collegamento tra un insieme di dati e AdapterView che visualizza i dati.


0

Alla fine, gli adattatori sono molto utili per fare un report. Se si desidera mostrare un report di alcune informazioni, è possibile utilizzare questo strumento per mostrare i dati sulla vista.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.