Nested Fragments

  • Hallo an alle,
    ich bin auch mal wieder mit einer Frage da, da ich bei einem Problem mir nicht erklären kann, wieso es ein Problem ist.
    Folgendes zur aktuellen Situation:
    ich habe eine MainActivity mit einem Drawer. Dieser ruft ganz normal ein Fragment auf. Dieses Fragment inflatet dann zwei weitere Fragmente in sein Layout. Eine ListView und eine DetailView. Nun möchte ich auf Klick eines Items in der ListView, das Detailfragment ändern.
    Also hab ich in der ListView ein Interface definiert, dieses in dem ParentFragment implmentiert und dann auf Klick des Buttons soll er halt die Funktion des Interfaces in dem ParentFragment aufrufen, welches mir dann das andere Fragment ändert.
    Jetzt allerdings zu meinem Problem. Bei jedem Klick wird mir eine NullPointerExeption geworfen. Alles klar, geguckt und überprüft. Der Debugger sagt: UncaughtExeption. Allerdings sagt er auch: Nichts ist null. Alle Variablen, die in der einen! Zeile vorkommen sind nicht null.


    Kennt jemand das Problem oder fällt jemanden etwas ein?
    Danke euch schon mal im Voraus. ;)

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • Was genau sagt LogCat zu dem Thema?


    NestedFragments mag Android meines Wissens nach nicht allzu gern. Da hatte ich schon Probleme mit, wenn ich im XML ein Fragment definiert hatte und dieses dann das Google Maps Fragment beinhaltete. Gab beim Wechsel gern lustige Probleme nach dem Motto 'Ein Fragment mit dieser ID oder diesem Parent existiert bereits."


    In dem Zusammenhang war die StackOverflow der Auffassung, man solle auf jeden Fall die Fragmente über einen FragmentManager in den Fragmenten vernesteln statt alles über den applikationsweiten FragmentManager managen zu lassen.


    Eventuell musst Du also dein ContentFragment so implementieren, dass es seinen eigenen FragmentManager hat (eventuell reicht seine eigene Instanz) und dort dann den Austausch des DetailFragments vornehmen.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Hi,
    LogCat liefert halt nur NullPointerException.


    Das mit Fragmenten in XML inkludieren, ist ein bekannter "Bug". Und wird auch Überall erwähnt, dass man es nicht im XML-Code implementieren soll.


    Im Moment hab ich es so, dass die FragmentActivity per FragmentManager das ContentFragment inkludiert. Dieses packt mir dann mit dem ChildFragmentManager die zwei Fragments rein.
    Ich hab auch versucht, die Instance des ContentFragments an die Childs zu übergeben und es so zu lösen, hat aber auch nicht geklappt. Ich Versuchs aber nochmal mit dem FragmentManager, wenn ich Zeit hab.

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • Meist liefert LogCat aber noch mehr als nur NullPointerException. Im Allgemeinen liefert es noch einen StackTrace mit.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Mal eine kleine Rückmeldung dazu.
    Es geht jetzt, aber keine Ahnung warum :D
    Hab es jetzt gelöst, indem einfach das eine NestedFragment das andere durch den FragmentManager des Parent raussucht und eine public Methode aufruft. Es klappt ;)

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!