Problem bei der Implementierung von Android-Fragmenten

8

Hier ist mein XML für mein Fragment:

%Vor%

Hier ist meine Java-Datei für das Fragment: (FoodItem ist nur ein benutzerdefiniertes Objekt, das ich verwende, um die Informationen über jedes Nahrungsmittel zu speichern, das das Fragment darstellt)

%Vor%

Hier ist die Klasse, in die ich die Fragmente einfüge:

%Vor%

Wenn ich es ausführe, bekomme ich diese Stack-Trace:

%Vor%

Ich war bei diesem Projekt in Ordnung, weil ich den Stack-Trace in den Code, den ich geschrieben habe, sehen und Fehler finden konnte. Aber wenn ich diesen hier treffe, gibt es mir Stack-Spuren für Code, den ich nicht geschrieben habe. Ich weiß, dass dies darauf hindeutet, dass ich etwas falsch gemacht habe, aber Google ist in diesem Fall nicht sehr hilfreich und ich habe diesen Code mehrere Male überstanden und sehe aufgrund der Dokumentation für jedes der Objekte und Klassen nichts falsches benutze ... Ist schon mal jemand davor gelandet? Haben Sie vielleicht ein paar Ideen, was Sie sehen sollen? Oder haben Sie einfach eine Antwort? lol. Ich benutze Intellij-Idee (nicht Android-Studios).

Danke! Jon

* AUS DEN KOMMENTAREN UNTEN * Hier ist die AdB-Log-Ausgabe:

%Vor%

Neuer Fehler jetzt nach einigen Neukonfigurationen: Ok ... neuer Fehler jetzt - & gt;

%Vor%

Und es passiert im oncreate meines Hauptmenüs, das die Tabs hinzufügt, wenn ich versuche, den "gesunden" Tab zum Tabhost hinzuzufügen:

%Vor%     
Jon Sansoucie 02.07.2015, 17:27
quelle

2 Antworten

4

Sie verweisen auf Ihre Ansichten, die in onCreate() in der Fragmentklasse falsch sind. Sie sollten ihre Referenzen in onCreateView() erhalten, indem Sie etwas wie folgt machen:

%Vor%

Wie Sie es geschrieben haben, versuchen Sie, auf die Ansichten zu verweisen, bevor Sie ihnen einen Wert zugewiesen haben, daher die NPE. Wenn food_item_display tatsächlich das übergeordnete Layout für alle diese Elemente ist, sollten Sie diese Ansicht verwenden, um die anderen nach ID zu finden, wie ich hier gezeigt habe.

    
AdamMc331 02.07.2015 17:43
quelle
2

Sie müssen onActivityCreated oder onCreateView verwenden, um Referenzen wie das folgende Beispiel zu erhalten. Sie können dafür onCreate nicht verwenden, da das Fragment erst nach onCreateView erstellt wird.

%Vor%

Ein anderes Beispiel:

%Vor%     
Lennon Petrick 02.07.2015 18:02
quelle