/ / Erweitern alle Android-Klassen die Aktivität? - Java, Android

Erweitern alle Android-Klassen die Aktivität? - Java, Android

Ich gehe einige Android - Entwicklungs - Tutorials durch, und ich stelle fest, dass einige Klassen Activity erweitern und andere beispielsweise ListActivity.

Erweitert eine neu erstellte Klasse standardmäßig standardmäßig die Aktivität oder müssen Sie sie explizit erweitern?

Wenn eine Klasse ListActivity erweitert, warum müssen Sie die Aktivität nicht erweitern? Oder erweitert ListActivity bereits die Aktivität?

Ich habe ein paar ähnliche Fragen gelesen, aber es war nicht ganz klar.

Antworten:

2 für die Antwort № 1

Standardmäßig werden alle Android-Aktivitäten erweitert Activity.

Erweitert eine neu erstellte Klasse standardmäßig standardmäßig die Aktivität oder müssen Sie sie explizit erweitern?

Sie müssen ausdrücklich angeben, dass es erweitert werden soll Activity Wenn dies nicht bereits der Fall ist und Sie beabsichtigen, es zu verwendenals eine Aktivität. Bitte beachten Sie, dass es Zeiten gibt, in denen Sie dies nicht tun würden. Wenn Sie beispielsweise eine Klasse für Ihre Objekte haben oder was nicht, müssen Sie die Aktivität nicht länger verlängern.

Wenn eine Klasse ListActivity erweitert, warum müssen Sie die Aktivität nicht erweitern? Oder erweitert ListActivity bereits die Aktivität?

ListActivity, AppCompatActivityund jede andere Klasse, die in endet -Activity sind "Kinder der Activity Klasse. Die Erweiterung um diese "Kinder" würde also bereits vom Elternteil ausgehen Activity Klasse und Sie müssen nicht mehr so ​​etwas tun YourActivity extends ListActivity, Activity. Ich denke, Android Studio wird Ihnen einen Fehler geben, wenn Sie dies tun.

Der Unterschied zwischen einem Activity und ein ListAcivity ist, dass eine ListActivity das Überschreiben mehrerer Methoden erfordert, da in ihrem Inhalt eine ListView erwartet wird.


2 für die Antwort № 2

Android ist in Java geschrieben und wie alle Java-Klassen erbt jede Klasse von der Object Klasse.

Erweitert eine neu erstellte Klasse Activity implizit oder müssen Sie sie explizit erweitern?

Sie müssen es erweitern.

Erweitert ListActivity bereits die Aktivität?

Ja.

Sie können die Klassenhierarchie für ListActivity anzeigen Hier.


1 für die Antwort № 3

Neu erstellte Klassen erweitern nichts. ListActivity ist eine Unterklasse von Activity, daher wird die gesamte Funktionalität, die Activity hat, ListActivity erbt. In dem Dokumentation Für ListActivity können Sie sehen, dass es sich um eine Unterklasse von Activity handelt.


1 für die Antwort № 4

In Android werden alle Klassen nicht um Aktivität erweitert.

Nur die Bildschirme, auf denen die Benutzeroberfläche dargestellt wird, werden um Aktivität erweitert. Wenn Sie also einen UI-Bildschirm erstellen möchten, müssen Sie ihn explizit mit der Activity-Klasse erweitern und die Callback-Methoden überschreiben.

ListActivity ist eine Unterklasse von Activity, die nur verwendet wird, wenn Sie in Ihrem Layout nur eine ListView haben.

Wenn Sie ein Fragment erstellen möchten, erweitert Ihre Klasse die Fragmentklasse und überschreibt ihre Methoden. Ähnlich für Service, BroadcastReceiver usw.