Unterschied zwischen Aktivität und FragmentAktivität


Antworten:


314

A FragmentActivityist eine Unterklasse davon Activity, die für das Android Support Package erstellt wurde .

Die FragmentActivityKlasse fügt ein paar neue Methoden hinzu, um die Kompatibilität mit älteren Android-Versionen sicherzustellen. Abgesehen davon gibt es keinen großen Unterschied zwischen den beiden. So stellen Sie sicher , dass Sie alle Anrufe ändern getLoaderManager()und getFragmentManager()zu getSupportLoaderManager()und getSupportFragmentManager()sind.


4
Hey, ich habe die Aufrufe von getSupportLoaderManager () und getSupportFragmentManager () nicht geändert. Aber es funktioniert immer noch einwandfrei.
Rookie

31
Das macht es so gefährlich: P. FragmentActivityerbt die getLoaderManagerund getFragmentManagerMethoden von Activityund als Ergebnis wird sich der Compiler nicht beschweren. Möglicherweise importieren Sie auch die falschen LoaderManagerund FragmentManagerKlassen. Stellen Sie sicher, dass Sie diese Klassen aus dem Support Package ( android.support.v4.app) importieren , nicht aus dem Android SDK ( android.app).
Alex Lockwood

1
Können wir sagen, dass wir, wenn wir Fragmente für die Android 2.x-Version verwenden möchten, FragmentActivity nad für Versionen verwenden müssen, die Fragmente unterstützen, müssen wir Activity verwenden.
Rookie

55
Ich denke, was Sie sagen, ist richtig. Aber nur um 100% klar zu sein ... verwenden ActivitySie, wenn Sie verwenden android.app.Fragment; Verwenden FragmentActivitySie, wenn Sie verwenden android.support.v4.app.Fragment. Fügen Sie niemals ein android.support.v4.app.Fragmentan ein an android.app.Activity, da dies dazu führt, dass eine Ausnahme ausgelöst wird.
Alex Lockwood

13
Probieren Sie zuerst dieses Tutorial aus (Verwendung Fragmentsin einer Anwendung). Fahren Sie dann mit diesem Tutorial fort (wie Sie die Fragments aus dem Support-Paket verwenden). Die Dokumentation auf der Entwicklerseite ist ebenfalls lesenswert.
Alex Lockwood

4

FragmentActivityist Teil der Support-Bibliothek und Activitydie Standardklasse des Frameworks. Sie sind funktional gleichwertig.

Sie sollten immer FragmentActivityund android.support.v4.app.Fragmentanstelle der Plattform Standard Activityund android.app.FragmentKlassen verwenden. Die Verwendung der Plattformstandards bedeutet, dass Sie sich auf die Implementierung von Fragmenten verlassen, die auf dem Gerät verwendet wird, auf dem Sie ausgeführt werden. Diese sind oft mehrere Jahre alt und enthalten Fehler, die inzwischen in der Support-Bibliothek behoben wurden.


1
Hinweis: minSdkVersionder Support-Bibliothek ist 14 seit Version 26.xx
Eugen Pechanec
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.