Welche Rolle spielen Adapter in Android?

123

Ich möchte wissen, wann , wo und wie Adapter im Kontext von Android verwendet werden.

Die Informationen aus der Entwicklerdokumentation von Android waren für mich unzureichend und ich würde gerne eine detailliertere Analyse erhalten.

Robin
quelle

Antworten:

29

Angenommen, Sie möchten eine Liste in Ihrer Android-App anzeigen. Hierfür verwenden Sie dieListView von Android bereitgestellte. ListViews enthalten selbst keine Daten. Es ist nur ein UI-Element ohne Daten. Sie können Ihre ListViews mit einem Android-Adapter füllen.

Adapter ist eine Schnittstelle, deren Implementierungen Daten bereitstellen und die Anzeige dieser Daten steuern. ListVieweigene Adapter, die ListViewdie Anzeige des Geräts vollständig steuern . Adapter steuern also den in der Liste angezeigten Inhalt sowie dessen Anzeige.

Die AdapterSchnittstelle enthält verschiedene Methoden zur Übermittlung von Daten an die ListView. Sie können Ihren eigenen Adapter von Grund auf neu erstellen, indem Sie ihn implementierenBaseAdapter .

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(){} 

}

Definieren wir einen Adapter:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
   android.R.layout.simple_list_item_1, android.R.id.text1, values);
  • Erster Parameter: Kontext
  • Zweiter Parameter: Layout für die Zeile
  • Dritter Parameter: ID des TextView in den die Daten geschrieben werden
  • Vierter Parameter: Das Datenarray
Prashant_M
quelle
45

Nun, Adapter in Android sind im Grunde eine Brücke zwischen den UI-Komponenten und der Datenquelle, die Daten in die UI-Komponente füllen

Beispielsweise werden Listen (UI-Komponente) mithilfe eines Listenadapters aus einem Datenquellenarray gefüllt.

success_anil
quelle
21
Dies sind die gleichen Informationen, die ich aus der Dokumentation erhalten kann. Aber ich möchte eine detaillierte Erklärung
Robin
25

Ich möchte mein Verständnis teilen.

Es ist eine Schnittstelle zwischen der Datenquelle und Ihrem Layout (höchstwahrscheinlich ListView).

Eine Analogie

Nehmen wir das Beispiel eines mobilen Ladegeräts oder vielmehr eines USB-Kabels. Das Kabel kann als Adapter betrachtet werden, während die Datenquelle und das Layout als Buchse (Steckpunkt) bzw. USB-Anschluss (Ladepunkt) verstanden werden können.

Beim mobilen Laden kann die Stromquelle unterschiedlich sein, z. B. beim Laden über eine Powerbank, eine Steckdose oder einen Laptop. Gleiches gilt für die in Android verwendeten Adapter. Die Datenquelle kann je nach Anwendungsanforderung geändert werden.

Kurz gesagt, ein Adapter in Android überträgt die Daten aus einer Quelle (z. B. ArrayList<>) und liefert sie an ein Layout (XML-Datei).

Akhilesh Sinha
quelle
2
Das bisher beste Beispiel: D Gute Arbeit!
Daksh Gargas
8

Adapter in Android sind eine Brücke zwischen der Adapteransicht (z. B. ListView) und den zugrunde liegenden Daten für diese Ansicht. Stellen Sie sich vor, was die Welt ohne Adapter gewesen wäre!

Beispiele

  • Eine Ansicht, die Elemente in einer vertikal scrollenden Liste anzeigt. Die Elemente stammen aus der ListAdapterdieser Ansicht zugeordneten.

  • Das ListAdapterdefiniert das Layout für einzelne Zeilen der Liste und liefert Daten ListViewüber die setAdapter()Methode von ListView.

  • Android bietet mehrere Standardadapter. die wichtigsten sind ArrayAdapterund CursorAdapter.

  • ArrayAdapter kann Daten basierend auf Arrays oder Listen verarbeiten.

  • SimpleCursorAdapter kann datenbankbezogene Daten verarbeiten.
Steve
quelle
4

Adapter werden grundsätzlich zur Bereitstellung von Inhalten verwendet. Ein Adapter, den Sie wahrscheinlich in jeder Anwendung haben, ist der CursorAdapter, mit dem Sie den von einem Cursor angegebenen Inhalt aus einer Datenbankabfrage bereitstellen können. Eine ListView hat fast immer eine Art Adapter.

WarrenFaith
quelle
7
Dies sind die gleichen Informationen, die ich aus der Dokumentation erhalten kann. Aber ich möchte eine detaillierte Erklärung
Robin
@Robin: Warum feiern Sie nicht das 10-jährige Jubiläum Ihrer Frage, indem Sie eine der Antworten "akzeptieren". Persönlich: 1) Ich fand Ihre Frage wertvoll (so bin ich hier gelandet), 2) Ich fand viele dieser Antworten hilfreich (einschließlich dieser) ... und 3) Ich habe keine Ahnung, was Sie damit meinen " eine detailliertere Erklärung ". Vielleicht liegt das daran, dass ich mich mehr für das "Warum" interessiere (wie oben erläutert).; Ich bin mehr daran interessiert , in dem „Wald“ (wie WarrenFaith Antwort) als die „detaillierten Bäume“ (whichi CAN aus der Dokumentation erhalten). Bitte stimme zu und akzeptiere :)
FoggyDay
4

Ein Adapter fungiert als Brücke zwischen einem AdapterViewund den zugrunde liegenden Daten für diese Ansicht. Der Adapter bietet Zugriff auf die Datenelemente und ist für die Erstellung einer Ansicht für jedes Element im Datensatz verantwortlich.

Adapter sind eine intelligente Möglichkeit, eine Verbindung Viewmit einer Datenquelle herzustellen. In der Regel ist Ihre Ansicht a ListViewund die Daten werden in Form eines Cursoroder angezeigt Array. Adapter kommen also als Unterklassen von CursorAdapteroder ArrayAdapter.

Jainendra
quelle
2

Ein Adapter verwaltet das Datenmodell und passt es an die einzelnen Zeilen in der Listenansicht an. Es erweitert die BaseAdapterKlasse.

Jede Zeile in der Listenansicht besteht aus einem Layout, das beliebig komplex sein kann. Eine typische Zeile in einer Listenansicht hat ein Bild auf der linken Seite und zwei Textzeilen in der Mitte.

Kamal Patidar
quelle
0

Der Adapter wird einfach verwendet, um das Listenansichtskonzept zu erreichen. Nicht nur zum Anzeigen der Datenliste, sondern auch der benutzerdefinierten Ansicht. Angenommen, der Kunde möchte die Liste verwenden, die mehr Textansichten enthält (jede andere Ansicht), als die Adapteransicht in Android.

Hemalatha MR
quelle
0

Es gibt bereits mehrere Antworten, aber ich möchte eine andere Antwort geben.

Adapter bedeutet, dass Sie können, dass sein Bridge-Anbieter .

Adapter sind die Verbindung zwischen einem Datensatz und der Adapteransicht, in der die Daten angezeigt werden.

Ramesh
quelle
0

Am Ende sind Adapter sehr nützlich, um einen Bericht zu erstellen. Wenn Sie einen Bericht mit einigen Informationen anzeigen möchten, können Sie mit diesem Tool die Daten in der Ansicht anzeigen.

RobertoFRey
quelle