2014-11-18 11 views
14

Ein getParentFragment() von meinem verschachtelten Fragment gibt eine null zurück. Ich weiß, dass das Erhalten eines null bedeutet, dass das Fragment an die Aktivität und nicht an das geschachtelte Containerfragment angehängt wird. Aber ich verschachtelte explizit das Kindfragment innerhalb des Elternfragments mit dem Kind FragmentManager und denke daher, dass ich keine null bekommen sollte. Kannst du mir sagen, was ich vermisse?Android: Übergeordnetes Fragment eines verschachtelten Fragments

Elternfragment

public class UsageBreakUp extends Fragment implements Filter.OnFragmentInteractionListener { 

    .... 

    @Override 
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
     getChildFragmentManager().beginTransaction().add(R.id.filter, new Filter()).commit(); 
    } 

... 

} 

Kinder Fragment

public class Filter extends Fragment { 

... 


    public Filter() { 
     if (getParentFragment() == null) 
      Log.d(LOG_TAG, "parent fragment is null"); 
    } 

... 

} 
+0

[Aktivieren Sie diese] (http://Stackoverflow.com/a/14804584/2591002) –

+0

@SweetWisher ツ, habe ich bereits. Es hilft nicht. Ich habe meine Frage mit diesen Informationen aktualisiert. –

+0

was ist mit [dies] (http://stackoverflow.com/a/22501774/2591002) ?? und bist du sicher, dass du * getParentFragment() * NULL ?? weil es scheint, dass Sie versuchen, Fragment zu einem Listener zu werfen, der eine Ausnahme wirft –

Antwort

24

I getParentFragment() im Konstruktor des Kindes Fragment anrief und somit bevor das Kind Fragment vollständig erstellt wurde. Die Verschiebung getParentFragment() zu onCreateView() löste das Problem. Das Verschieben war kein Problem, da ich getParentFragment() anrief, um zu überprüfen, ob das Elternfragment einen Kindfragmentinteraktionslistener implementiert hatte.

Verwandte Themen