Das Android-Kompatibilitätspaket enthält Activity.getFragmentManager () nicht.

80

Ich habe versucht, meiner Android-App, die auf 2.1 basiert, mithilfe des Android-Kompatibilitätspakets, das erst am 3. März veröffentlicht wurde, Fragmente hinzuzufügen. Ich habe die Bibliothek in mein Projekt aufgenommen und damit begonnen, den Code von meiner aktivitätsbasierten Klasse in eine fragmentbasierte zu verschieben. Ich habe jedoch festgestellt, dass die Fragmentbeispiele von Google anscheinend auf der Tatsache beruhen, dass die Aktivitätsklasse in 3.0 (Honeycomb) hat die neue Methode getFragmentManager (). Es scheint ein integraler Bestandteil des Fragment-Systems zu sein.

Ich habe versucht, in der Kompatibilitätspaketbibliothek nach einer enthaltenen Aktivitätsimplementierung mit getFragmentManager () zu suchen, kann sie jedoch nicht finden. Weiß jemand, wo ich getFragmentManager () finden kann, damit ich Fragmente für Honeycomb-Kompatibilität einschließen kann, oder wenn nicht, wissen Sie, wie ich Fragmente einschließen kann, ohne einen FragmentManager zu verwenden?

Ski
quelle

Antworten:

150

Sie müssen FragmentActivityanstelle der normalen verlängern Activity. Dann können Sie anrufen, getSupportFragmentManager()was genauso funktioniert wie getFragmentManager().

Kaloer
quelle
1
Hat mir viel Angst erspart, diese Antwort! Vielen Dank.
Roundhill
7
Vorschläge zur Verwendung der Google Maps-API auf diese Weise? MapView und FragmentActivity können nicht gleichzeitig erweitert werden
Rushinge
Was ist der Unterschied zwischen getSupportFragmentManager () und getFragmentmanager ()?
IgorGanapolsky
3
@IgorG. getFragmentManager () ist nur in Android 3.0+ verfügbar und die "native" Methode zum Abrufen des FragmentManager. getSupportFragmentManager () macht im Grunde das Gleiche, aber es ist die Implementierung der Kompatibilitätsbibliothek der Methode.
Kaloer
1
Ruft "getSupportFragmentManager ()" bei der Entwicklung einer Anwendung, die ab Version 2.2 bereitgestellt wird, einfach "getFragmentManager ()" auf Plattformen auf, die den nativen Aufruf unterstützen?
Dan Devine
0

Sie müssen nur Ihr Android-Ziel auf API-Stufe = 12 ändern

ziedmaz
quelle