Wir haben die Raumdatenbank und das Repository erstellt.
In diesem Video werden wir das Ansichtsmodell erstellen.
Der Zweck des Ansichtsmodells besteht darin, die für eine Aktivität oder ein Fragment erforderlichen Informationen zu erfassen und
zu speichern.
Sie dient als Verbindung zwischen dem Modell und der Ansicht.
Sie ist für die Umwandlung der Daten aus dem Modell zuständig.
Sie stellt der Ansicht Datenströme zur Verfügung.
Die Aktivität oder das Fragment sollte in der Lage sein, Änderungen im Ansichtsmodell zu beobachten.
View-Modelle stellen diese Informationen in der Regel über Live-Daten oder Android-Datenbindung zur Verfügung.
Wechseln wir in Android Studio und erstellen wir unser Ansichtsmodell.
Erstellen Sie eine neue Java-Klasse, die ich als mein Ansichtsmodell bezeichnen werde.
Und typischerweise müssen wir das Ansichtsmodell von Android Lifecycle erweitern.
Aber wenn wir das Repository öffnen, muss ich dieses Repository initialisieren. Um es zu initialisieren,
muss ich seinen Konstruktor aufrufen und eine Anwendung als Parameter übergeben.
Wenn Sie den Kontext innerhalb Ihres View-Modells verwenden müssen, sollten Sie das Android View-Modell AVM anstelle
eines View-Modells verwenden, da es den Anwendungskontext enthält.
Ich werde Ihnen das Problem hier zeigen.
Ich brauche zu initialisieren und erstellen Sie eine Instanz aus dem Repository, mein Repository und im Konstruktor
dieses Ansichtsmodells muss ich es dieses Repository gleich neue Repository initialisieren.
Und hier muss ich einen Parameter vom Typ application übergeben.
Hier ist das Problem, wo ich die Anwendung erhalten kann, erhalten Anwendungskontext, die Ansicht Punkt, erhalten Anwendungskontext.
Ich kann nichts verwenden, um die Anwendungsinstanz zu erhalten.
Die Lösung besteht also darin, vom Ansichtsmodell zum Android-Ansichtsmodell zu wechseln.
Android View Model-Klasse ist eine Unterklasse eines View-Modells und ähnlich wie sie sind sie entworfen, um zu speichern und zu verwalten
UI-bezogene Daten, die verantwortlich sind, um vorzubereiten und bieten Daten für die UI und automatisch ermöglichen Daten
zu überleben Konfigurationsänderungen, so dass ich einen neuen Konstruktor verwenden können.
Alt+ Einfügen Konstruktor mein Repository und Sie können sehen, meine Anwendung übergeben wird.
Okay, dieser Konstruktor erhält also die Anwendung und ein Repository.
Ich werde dieses Repository entfernen, weil ich es hier gleich dem neuen Repository initialisieren und die Anwendung als
Parameter übergeben muss.
So verwenden wir also das Android-Ansichtsmodell.
Auch hier ist das Android-Ansichtsmodell eine Unterklasse des Ansichtsmodells, das zum Speichern und Verwalten von UI-bezogenen Daten bestimmt
ist.
Dann muss ich die Live-Daten erstellen.
Und diese Live-Daten-Instanz, alle Kontakte wird das Repository Punkt aufrufen, erhalten alle Kontakte Methode diese Methode,
erhalten alle Kontakte und geben Sie die Daten und speichern Sie es innerhalb der Live-Daten.
Also öffentliche Live-Daten vom Typ Liste der Kontakte Datentyp Holen Sie sich alle Kontakte dann alle Kontakte.
Live-Daten gleich Repository-Punkt erhalten alle Kontakte.
Wie Sie sehen, verwende ich das Repository, um alle Kontakte zu erhalten, und führe diese Methode aus, die alle Kontakte zurückgibt.
Auch ich habe in diesem Repository andere Methoden.
Kontakt hinzufügen und Kontakt löschen.
Ich werde also ViewModel verwenden, um diese Methoden zu erstellen, und die Methoden des Repository public void aufrufen.
Neuen Kontakt hinzufügen und ich muss ein Kontaktobjekt übergeben.
Wie Sie sehen können, verwende ich meine Repository-Instanz, um die Funktionen aufzurufen und auszuführen.
Kontakt hinzufügen public void delete contact.
Ich muss Kontakte Objekt übergeben und es verwenden, um das Repository auszuführen, löschen Sie Kontakt-Methode und übergeben
Sie den Kontakt.
Diese Klasse wird also die Daten für die Benutzeroberfläche bereitstellen.
Live-Daten werden verwendet, um Änderungen in den Benutzerdaten zu beobachten und die Benutzeroberfläche automatisch zu aktualisieren,
wenn sich Daten ändern, und Kontakte können über das ViewModel in die Raumdatenbank eingefügt und auch gelöscht werden.
Diese Mvvm-Architektur sorgt für eine Trennung der Bereiche, macht den Code wartungsfreundlicher und gewährleistet eine reaktionsschnelle und aktuelle
Benutzeroberfläche.
Das ViewModel fungiert als Brücke zwischen der Benutzeroberfläche und der Datenquelle, d. h. der Raumdatenbank in unserer Anwendung,
und erleichtert so die Verwaltung von Daten und Benutzeroberflächeninteraktionen.