WEBVTT

00:00.080 --> 00:02.000
Hallo, meine Freunde, und willkommen zurück.

00:02.000 --> 00:07.160
In diesem Video lernen wir ein sehr wichtiges Konzept in Android kennen, das ViewModel.

00:07.160 --> 00:09.380
Ich möchte, dass Sie sich ganz auf mich konzentrieren.

00:09.410 --> 00:16.430
ViewModel ist eine Klasse, die für die Vorbereitung und Verwaltung der Daten für eine Aktivität oder ein Fragment verantwortlich ist.

00:16.430 --> 00:22.100
Sie übernimmt auch die Kommunikation der Aktivität oder des Fragments mit dem Rest der Anwendung.

00:22.130 --> 00:28.850
Ein ViewModel wird immer in Verbindung mit einem Bereich, einem Fragment oder einer Aktivität erstellt und bleibt so lange

00:28.850 --> 00:31.160
erhalten, wie der Bereich aktiv ist.

00:31.160 --> 00:34.820
Zum Beispiel, wenn es sich um eine Aktivität handelt, bis sie beendet ist.

00:34.820 --> 00:43.490
Mit anderen Worten bedeutet dies, dass ein ViewModel nicht zerstört wird, wenn sein Besitzer aufgrund einer Konfigurationsänderung zerstört

00:43.490 --> 00:43.940
wird.

00:43.940 --> 00:45.860
Zum Beispiel die Drehung des Bildschirms.

00:45.860 --> 00:51.080
Die ViewModel-Klasse ist ein Zustandshalter auf Geschäftslogik- oder Bildschirmebene.

00:51.080 --> 00:59.150
Sie stellt den Zustand der Benutzeroberfläche zur Verfügung und kapselt die zugehörige Geschäftslogik.

00:59.150 --> 01:06.840
Ihr Hauptvorteil besteht darin, dass sie einen Zustand zwischenspeichert und ihn bei Konfigurationsänderungen beibehält.

01:06.840 --> 01:14.670
Das bedeutet, dass Ihre Benutzeroberfläche die Daten nicht erneut abrufen muss, wenn Sie zwischen Aktivitäten navigieren oder Konfigurationsänderungen

01:14.670 --> 01:18.150
vornehmen, z. B. wenn Sie den Bildschirm drehen.

01:18.150 --> 01:25.560
Im nächsten Video werden wir ein Beispiel über das ViewModel nehmen, wie wir ein ViewModel in unseren Anwendungen implementieren.

01:25.560 --> 01:30.510
Aber lassen Sie uns in Android Studio springen und sehen, was unsere Konfiguration ändert.

01:30.510 --> 01:35.940
Ich habe diese einfache Anwendung namens ViewModel Application to Text Views erstellt.

01:35.940 --> 01:38.520
Dies ist der Titel und dies ist der Zähler.

01:38.520 --> 01:38.940
Auch.

01:38.940 --> 01:40.200
Ich habe einen Knopf.

01:40.200 --> 01:48.060
Ich schließe sie in das Layout-Element ein und füge die Build-Funktionen der Datenbindungsbibliothek zu unserer Anwendung hinzu.

01:48.060 --> 01:55.770
Wenn Sie doppelte Klasse Fehler in Android Studio Gesicht, fügen Sie einfach fix doppelte Klasse und diese Umsetzung synchronisieren

01:55.770 --> 01:57.090
das Projekt.

01:57.090 --> 01:59.370
Kommen wir nun zur Haupttätigkeit.

01:59.370 --> 02:00.480
In der Haupttätigkeit.

02:00.480 --> 02:07.350
Ich habe eine Aktivität mit dem Namen main binding und einen Zähler vom Typ integer erstellt.

02:07.350 --> 02:14.220
Dann initialisiere ich es und muss den Zähler um eins erhöhen und den Text auf den Zähler setzen.

02:14.220 --> 02:17.340
Führen Sie das Projekt aus und Sie können sehen, wie der Zähler erhöht wird.

02:17.340 --> 02:18.930
Es nimmt richtig zu.

02:18.930 --> 02:27.750
Aber das Problem ist, wenn ich auf turn klicke und den Bildschirm drehe, wird der Zähler auf den Anfangswert zurückgesetzt,

02:27.750 --> 02:28.890
also auf Null.

02:28.890 --> 02:29.880
Erhöhen Sie den Zähler.

02:29.880 --> 02:38.010
Es funktioniert perfekt, aber wenn ich den Bildschirm drehe, wird der Zähler auf seinen Anfangswert zurückgesetzt.

02:38.010 --> 02:44.850
Dies ist ein Problem, da unsere Anwendung Konfigurationsänderungen nicht überlebt, was der Rotationsbildschirm

02:44.850 --> 02:45.210
ist.

02:45.210 --> 02:47.250
Was ist in diesem Fall die Lösung?

02:47.250 --> 02:52.530
Die Lösung ist die Verwendung des ViewModel in unserer einfachen Anwendung.
