27 Mai, 2018

Data Binding Library Tutorial

Hi, heute zeige ich dir, wie du die Android Data Binding Library nutzen kannst. Diese Bibliothek ermöglicht es dir,  deine Ui Elemente mit Datenquellen zu verbinden. Bei Änderung an den Daten werden die Ui Elemente automatisch aktualisiert. Somit kannst du dir eine Menge Code, welcher für die Synchronisation zwischen Datenquelle und Ui nötig wäre, sparen.

Data Binding Library nutzen

Um Data Binding in deinem Projekt nutzen zu können, musst du zuerst folgende Zeilen deiner „build.gradle“ Datei hinzufügen:

 

Layouts mit Data Binding erstellen

Wenn du normalerweise eine Layoutdatei anlegst, beginnst du am Anfang der Datei deine ViewGroup (LinearLayout, ConstraintLayout, etc.), welche als übergeordnetes Layout für deine anderen Views dienen soll, festzulegen. Der Aufbau für ein Layout mit Data Binding unterscheidet  von diesem Vorgehen ein bisschen. Nun beginnst du, anstelle der ViewGroup einen „<layout>“ Tag anzugeben. Innerhalb dieses Tags gibst du mit dem „<data>“ Tag deine Daten für das Binding an. Unterhalb des „<data>“ Tags folgt dann dein gewöhnliches Layout. Einen beispielhaften Aufbau der xml Datei siehst du hier:

  • <layout>: Root Element der xml Datei.
  • <data>: Alle Variablen werden innerhalb dieses Tags angegeben.
  • <variable>: Mit diesem Tag deklarierst du eine Variable, hierbei musst du einen Namen vergeben und den Datentyp festlegen.
  • <android.support.constraint.ConstraintLayout>: ConstraintLayout, welches beispielhaft für dein Layout steht.

Um nun Daten aus dem <data> Tag in deinen Views zu verwenden, musst du einfach die Annotation @{Variablenname} nutzen. So kannst du zum Beispiel einen String mit name=“nachricht“ in deinem TextView anzeigen lassen:

Das TextView übernimmt nun automatisch den Wert, welcher in „nachricht“ gespeichert ist.

 

Die Binding Klasse

Für jede Layoutdatei, bei der du Data Binding nutzt, wird automatisch eine Binding Klasse erstellt. Diese bekommt standardmäßig einen Namen, der sich direkt aus dem des Layouts generiert. Bsp: „activity_main.xml“ -> „ActivityMainBinding“. Mit dieser Klasse hast du die Möglichkeit, auf die Binding Daten des Layouts zuzugreifen und zu verändern. Um die Bindings vollständig zu setzen, musst du die Methode setContentView(), welche eigentlich für das Festlegen des Layouts genutzt wird, mit folgendem Ausdruck ersetzen:

Vollständige onCreate() Methode:

  • mit „binding.setNachricht()“ wird die Variable „nachricht“ aus dem vorherigen Beispiel gesetzt.

Wenn du statt einer Activity ein Fragment verwendest, musst du diesen Ausdruck verwenden:

Listener

Neben den variablen kannst du außerdem Listener (z. B. onClick(), onLongClick(), etc.) und Methodenaufrufe nutzen.

Zuerst erstellst du eine einfache Presenter Klasse mit dem Namen „MainPresenter“. In diese Klasse schreibst du die passenden Listener Methoden, welche bei einer bestimmten Aktion ausgelöst werden sollen. Beachte hierbei, dass du die gleichen Parameter, welche auch die Listener Interface Methoden benötigen, nutzt. Beispielsweise musst du für die Listener Methode onClick() einen Parameter vom Typ View nutzen.

Erstelle eine Listener Methode in deiner MainPresenter Klasse:

Übergebe in deiner Activity mithilfe der Binding Klasse einen neuen MainPresenter, welchen du vorher in deiner Layoutdatei als Variable anlegst.

Erstelle einen Button mit einer onClick Methode

Somit wird bei einem Klick auf den Button ein Toast mit dem Text „Hallo“ angezeigt.

 

Fazit

Neben diesen Basics gibt es natürlich auch weitere Funktionen, welche du dir gerne auf der AndroidDeveloper Seite anschauen kannst. Mit diesen Basics solltest du aber trotzdem in der Lage sein, deinen Code übersichtlicher und einfacher zu gestallten. Ich hoffe, dieser Beitrag hat dir geholfen und du probierst das Data Binding in deinem nächsten Projekt selbst mal aus.

Das könnte dich auch interessieren...