Pytanie Android - aktywność kontra FragmentActivity? [duplikować]


To pytanie już zawiera odpowiedź:

Jestem nowy w systemie Android. Chcę zbudować aplikację z formatem kart. Znalazłem wiele dokumentacji, gdzie Activity był użyty. Również w wielu przypadkach zostały użyte FragmentActivity. Nie jestem pewien, który z nich lepiej będzie zacząć. Proszę, zasugeruj, że powinienem użyć Activity lub FragmentActivity rozpocząć rozwój w formacie karty?


76
2018-03-10 03:18


pochodzenie




Odpowiedzi:


ianhanniballake ma rację. Możesz uzyskać wszystkie funkcje Activity od FragmentActivity. W rzeczywistości, FragmentActivity ma więcej funkcji).

Za pomocą FragmentActivity możesz z łatwością budować tab and swap format. Dla każdej karty możesz użyć innej Fragment (Fragments są wielokrotnego użytku). Tak dla każdego FragmentActivity możesz ponownie użyć tego samego Fragment.

Nadal możesz użyć Activity dla pojedynczych stron, takich jak lista, coś i edytuj element listy na następnej stronie.

Pamiętaj też, aby użyć Activity jeśli używasz android.app.Fragment; posługiwać się FragmentActivity jeśli używasz android.support.v4.app.Fragment. Nigdy nie dołączaj a android.support.v4.app.Fragment do android.app.Activity, ponieważ spowoduje to wyrzucenie wyjątku.


112
2018-03-10 03:36



FYI, znalazłem kilka dobrych dyskusji na temat Fragmentu Androida w innym języku tutaj Fragment trojka Android - UmbalaAZ
ALE zobacz odpowiedź @ ianhanniballake: chyba że starszy interfejs API jest starszy niż API 11, możesz użyć Activity zamiast FragmentActivityi nadal mieć dostęp do Fragmentów; to odpowiedź nie dość tego mówi (chociaż ostatni akapit implikuje to). - ToolmakerSteve
Jak wiemy, głównie mamy BaseActivity w naszym projekcie, a wszystkie inne działania go rozszerzają. Ale jeśli chodzi o FragmentActivity, nie możemy tego zrobić. Więc nie używam FragmentActivity nawet w przypadku tab. - Allen Vork


FragmentActivity zapewnia pełną funkcjonalność Activity plus umiejętność używania Paprochy które są bardzo przydatne w wielu przypadkach, szczególnie podczas pracy z ActionBar, który jest najlepszym sposobem korzystania z kart w Androidzie.

Jeśli jesteś tylko celując w urządzenia Honeycomb (v11) lub nowsze, możesz użyć Activity i używaj rodzimych Fragmentów wprowadzonych w v11 bez problemu. FragmentActivity został zbudowany specjalnie jako część Biblioteka pomocy aby z powrotem przenieść niektóre z przydatnych funkcji (takich jak Fragmenty) do starszych urządzeń.

Powinienem również zauważyć, że prawdopodobnie znajdziesz Kompatybilność wsteczna - karty implementujące szkolenie bardzo pomocne w przyszłości.


53
2018-03-10 03:28



@ A - C - Edytowałem swoją odpowiedź - masz rację, że urządzenia z API 11+ mogą korzystać z natywnych fragmentów i normalnej klasy aktywności. - ianhanniballake
Zamierzam zakwestionować twierdzenie, że normalna klasa aktywności może być używana jako fragment w API11 +. Wygląda na to, że zmieniło się w KitKat. Widzieć android.googlesource.com/platform/frameworks/base.git/+/... - cmarcelk
@cmarcelk - nie jestem pewien, co "normalna klasa aktywności może być używana jako fragment" - powiedziałem android.app.Activity pracuje z android.app.Fragment, nic nie może być wymienne. - ianhanniballake
@cmarcelk w API11 + Activity mogą dostęp paprochy; FragmentActivity nie jest już wymagane. Aktywność lub FragmentActivity same nie są Fragmentami. - ToolmakerSteve


Jeśli użyjesz kreatora Eclipse "Nowy projekt Android" w ostatnim pakiecie ADT, automatycznie otrzymasz zakładki zaimplementowane jako Fragmenty. To sprawia, że ​​konwersja aplikacji na format tabletu jest znacznie łatwiejsza w przyszłości.

W przypadku prostych układów z jednym ekranem możesz nadal używać Activity.


3
2018-03-10 03:28