Pakiet zgodności systemu Android nie obejmuje Activity.getFragmentManager ()

80

Zacząłem próbować dodawać fragmenty do mojej aplikacji na Androida, która jest oparta na 2.1, używając pakietu zgodności dla Androida, który pojawił się 3 marca. Włączyłem bibliotekę do mojego projektu i zacząłem przenosić kod z mojej klasy opartej na aktywności do klasy opartej na fragmentach, ale zauważyłem, że przykłady fragmentów z Google wydają się polegać na fakcie, że klasa Activity w wersji 3.0 (Honeycomb) ma nową metodę getFragmentManager (). Wydaje się, że jest to integralny element systemu Fragmentów.

Próbowałem zajrzeć do biblioteki pakietu zgodności, aby znaleźć dołączoną implementację działania, która ma funkcję getFragmentManager (), ale nie mogę jej znaleźć. Czy ktoś wie, gdzie mogę znaleźć metodę getFragmentManager (), więc mogę dołączyć fragmenty w celu zapewnienia zgodności z plastrem miodu, a jeśli nie, czy wiesz, w jaki sposób mogę dołączyć fragmenty bez użycia FragmentManager?

Narty
źródło

Odpowiedzi:

150

Będziesz musiał przedłużyć FragmentActivityzamiast normalnego Activity. Wtedy będziesz mógł zadzwonić, getSupportFragmentManager()co działa tak samo jak getFragmentManager().

Kaloer
źródło
1
Ta odpowiedź zaoszczędziła mi wielu cierpień! Dzięki.
roundhill
7
Jakieś sugestie dotyczące korzystania z Google Maps API w ten sposób? Nie można jednocześnie rozszerzyć MapView i FragmentActivity
spieszymy się
Jaka jest różnica między getSupportFragmentManager () i getFragmentmanager ()?
IgorGanapolsky
3
@IgorG. getFragmentManager () jest dostępna tylko w systemie Android 3.0+ i jest "natywną" metodą uzyskiwania fragmentu FragmentManager. getSupportFragmentManager () robi w zasadzie to samo, ale jest to implementacja biblioteki zgodności metody.
Kaloer
1
Czy podczas tworzenia aplikacji wdrożonej w wersji 2.2 forward funkcja „getSupportFragmentManager ()” wywołuje po prostu „getFragmentManager ()” na platformach obsługujących wywołanie natywne?
Dan Devine
0

Musisz tylko zmienić cel systemu Android na poziom interfejsu API = 12

ziedmaz
źródło
0

Osoby starające się, aby to działało z Google Maps SDK, zobacz getFragmentManager z API8 i pamiętaj, aby zaktualizować również plik układu!

pozorny
źródło