Ich habe eine Frage bezüglich der Verwendung von Kontext in einem Fragment. Mein Problem ist, dass ich immer eine NullpointerException bekomme. Hier ist, was ich tue:
Erstellen Sie eine Klasse, die das SherlockFragment erweitert. In dieser Klasse habe ich eine Instanz einer anderen Helper-Klasse:
%Vor%Hier ist ein Auszug der anderen Helper-Klasse:
%Vor% Jedes Mal, wenn ich context.someMethod
aufruft (z. B. context.getResources ()), erhalte ich eine NullPointerException. Warum ist das so?
Sie versuchen, eine Context
zu erhalten, wenn die Fragment
zuerst instanziiert wird. Zu diesem Zeitpunkt ist es NICHT an Activity
angehängt, daher gibt es kein gültiges Context
.
Sehen Sie sich den Fragment Lifecycle an. Alles zwischen onAttach()
bis onDetach()
enthält einen Verweis auf eine gültige Context-Instanz. Diese Kontextinstanz wird normalerweise über getActivity()
Codebeispiel:
%Vor% Ich habe onAttach()
in meinem Beispiel verwendet, @LaurenceDawson hat onActivityCreated()
verwendet. Beachten Sie die Unterschiede. Da onAttach()
bereits eine Activity
erhalten hat, habe ich getActivity()
nicht verwendet. Stattdessen benutzte ich das Argument bestanden. Für alle anderen Methoden im Lebenszyklus müssen Sie getActivity()
verwenden.
Tags und Links java android nullpointerexception android-context