/ / Czy wszystkie klasy Androida rozszerzają Aktywność? - java, android

Czy wszystkie klasy Androida rozszerzają działanie? - Java, Android

Przechodzę przez kilka samouczków programowania dla Androida i zauważam, że niektóre klasy rozszerzają Aktywność, a inne rozszerzają ListActivity na przykład.

Czy domyślnie nowo utworzona klasa domyślnie rozszerza działanie, czy też trzeba je jawnie rozszerzyć?

Ponadto, kiedy klasa rozszerza ListActivity, dlaczego nie musisz przedłużać działania? A może ListActivity już rozszerza działanie?

Przeczytałem kilka podobnych pytań, ale nie było to całkiem jasne.

Odpowiedzi:

2 dla odpowiedzi № 1

„Domyślnie” wszystkie działania Androida są przedłużane Activity.

Czy domyślnie nowo utworzona klasa domyślnie rozszerza działanie, czy też trzeba je jawnie rozszerzyć?

Musisz wyraźnie stwierdzić, że powinien on zostać przedłużony Activity jeśli jeszcze nie i jeśli planujesz go użyćjako działanie. Uprzejmie pamiętaj, że zdarzają się sytuacje, w których byś tego nie robił. Na przykład, jeśli masz klasę dla swoich przedmiotów lub coś w tym rodzaju, nie musisz już przedłużać Aktywności.

Ponadto, kiedy klasa rozszerza ListActivity, dlaczego nie musisz przedłużać działania? A może ListActivity już rozszerza działanie?

ListActivity, AppCompatActivityoraz każdą inną klasę, która kończy się na -Activity są „dziećmi Activity klasa. Tak więc, rozszerzenie przez te „dzieci” już rozciągałoby się od rodzica Activity klasy i nie będziesz już musiał robić czegoś takiego YourActivity extends ListActivity, Activity. Myślę, że Android Studio wyświetli błąd, jeśli to zrobisz.

Różnica między Activity i a ListAcivity jest to, że ListActivity będzie wymagać zastąpienia kilku metod, ponieważ oczekuje ListView w swojej zawartości.


2 dla odpowiedzi nr 2

Android jest napisany w Javie i jak wszystkie klasy java, każda klasa dziedziczy po Object klasa.

Czy nowo utworzona klasa domyślnie rozszerza działanie, czy też musisz je jawnie rozszerzyć?

Musisz go przedłużyć.

Czy ListActivity już rozszerza działanie?

Tak.

Możesz zobaczyć hierarchię klas dla ListActivity tutaj.


1 dla odpowiedzi nr 3

Nowo utworzone klasy niczego nie rozszerzają. ListActivity jest podklasą działania, więc cała funkcjonalność, jaką posiada, ListActivity dziedziczy. w dokumentacja dla ListActivity widać, że jest to podklasa działania.


1 dla odpowiedzi nr 4

W Androidzie wszystkie klasy nie są rozszerzane przez działanie.

Tylko ekrany wyświetlające interfejs użytkownika są rozszerzane przez działanie. Jeśli więc chcesz utworzyć ekran interfejsu użytkownika, musisz jawnie rozszerzyć go o klasę Activity i zastąpić metody wywołania zwrotnego.

ListActivity jest podklasą działania, która jest używana tylko wtedy, gdy w twoim układzie jest tylko ListView. Ma kilka specyficznych metod związanych z widokiem listy.

Podobnie, jeśli chcesz utworzyć fragment, twoja klasa rozszerzy klasę fragmentów i zastąpi jej metody. Podobnie w przypadku usługi, odbiornika itp.