Aktivitätsklasse in android erweitert die Kontextklasse. Im Grunde ist eine Aktivität ein Kontext. Ein Kontext darf jedoch keine Aktivität sein.
fragment.getContext()
gibt den Kontext des Containers zurück, an den es angehängt ist. Also ja container.getContext()
wird die gleichen Ergebnisse wie von fragment.getContext()
dh die Host-Aktivität haben.
Wenn eine Instanz der ViewGroup erstellt wird, wird der Kontext für den Inflate-Durchlauf dieser Aktivität angezeigt. Mittel container.getContext()
wird denselben Kontext zurückgeben.
fragment.getActivity()
wird eine Aktivität zurückgeben, mit der es verbunden ist, was wiederum ein Kontext ist. Wenn das Fragment von der Aktivität getrennt wird, wird null zurückgegeben. Und wenn es angefügt wird, gibt es auch getContext()
Und über Ihre letzte Frage, gibt view.getContext()
Kontext zurück, in dem es ausgeführt wird. Die View erweitert die Context-Klasse nicht, wenn sie erstellt wird, benötigen sie ein Kontextobjekt als Parameter. Wenn Sie also eine Ansicht in einer Aktivität erstellen, müssen Sie den Kontext übergeben. Und wenn Sie view.getContext()
aufrufen, erhalten Sie den gleichen Kontext zurück, den Sie bei der Erstellung übergeben haben.
so können wir 'Anwendungskontext' übergeben, um während seiner Erstellung anzuzeigen? – q126y
können Sie 'getContext()' oder 'getActivity(). GetApplicationContext()' übergeben, wenn Sie Ansichten in Ihrer App erstellen. Normalerweise werden Ansichten jedoch in XML erstellt und der Rest wird inflationiert. –
"Also wird container.getContext() ja die gleichen Ergebnisse wie fragment.getContext() haben, dh die Host-Aktivität." Aber wenn 'container' mit' Anwendungskontext' aufgebläht wurde, hätten wir einen anderen Kontext für 'fragment.getcontext()' und 'container.getContext'. – q126y