2011-07-19 14 views
7

Próbowałem używać DialogFragment na urządzeniach 3.0, które nie obsługuje fragmentów lub DialogFragment na poziomie SDK.Jak mogę wyświetlić DialogFragment przy użyciu pakietu zgodności?

Postanowiłem więc użyć biblioteki kompatybilności z Androidem, która obsługuje Fragment.
Następnie utworzyłem klasę DialogFragment, która rozszerza android.support.v4.app.DialogFragment.

Ale ..... Kiedy próbowałem pokazać mój DialogFragment użyciu DialogFragment.show(), które pokazują, że zgłoszona (FragmentManager, String) przyjmuje pierwszy argument jako android.app.FragmentManager, nie android.support .v4.app.FragmentManager.

Myślę, że android.app.FragmentManager nie może być używany w urządzeniach z Androidem 3.0, ponieważ nie jest uwzględniony w SDK.

Czy istnieje sposób, aby wyświetlić DialogFragment z biblioteki zgodności? Czy muszę użyć innego sposobu, aby wyświetlić My DialogFragment z biblioteką kompatybilności?

Każda pomoc będzie doceniana. :)

Odpowiedz

15

Pakiet zgodności przeznaczony jest dla tych, którzy pracują na systemie Android w wersji wcześniejszej niż 3.0.

Zarówno FragmentManager i DialogFragment klasy istnieją w poziomie API 11 (3,0)

W dowolny fragment lub działalność powinna być w stanie wykonać następujące czynności, aby wyświetlić małe okno (pusty) na środku ekranu :

DialogFragment df = new DialogFragment(); 
df.show(getSupportFragmentManager(), "MyDF"); 
+5

Wymień getFragmentManager z getSupportFragmentManager(). – Tom

10

FragmentManager i DialogFragment istnieje w compat lib przypadku sDK w wersji 4 i wzwyż, upewnij się, że import tamte.

Użytkownik getSupportFragmentManager(), aby uzyskać FragmentManager dla kompatybilnej biblioteki.

Pokaż okno dialogowe opisane w dokumentacji DialogFragment przekazując kompatybilną wersję lib `FragmentManager '.

pamiętać, że można również traktować jako FragmentDialogFragment i „show” to za pomocą add(...) lub replace(...) jako część transakcji, to znaczy nie jesteś ograniczony do tylko przy użyciu show(...)

+1

Jaka byłaby różnica między add() i show()? – David

Powiązane problemy