2013-08-12 2 views
10

Ich kann problemlos zwischen zwei fragment s einer Aktivität durch Rückruf interface kommunizieren. Auf diese Weise habe ich eine Schnittstelle in ParentFragment zur Kommunikation implementiert.Kommunikation zwischen zwei untergeordneten Fragmenten in einem verschachtelten Fragment

Aber im Fall der Aktivität wurde unter Verwendung von I -

@Override 
    public void onAttach(Activity activity) { 
     super.onAttach(activity); 
     try { 
      mCallback = (OnHeadlineSelectedListener) activity; 
     } catch (ClassCastException e) { 
      throw new ClassCastException(activity.toString() 
        + " must implement OnHeadlineSelectedListener"); 
     } 
    } 

Und in aktuellem Fall, ich mCallback = (OnHeadlineSelectedListener) getParentFragment(); statt mCallback = (OnHeadlineSelectedListener) activity; verwenden. Alles funktioniert gut. Ist dieser Ansatz in Ordnung? Oder sollte ich es stattdessen in einen anderen Thread tun onAttach()?

Antwort

7

Die Aufgabe ist sicherzustellen, dass ein bestimmtes Objekt eine Instanz der Klasse ist, die die angegebene Schnittstelle implementiert (in diesem Fall OnHeadlineSelectedListener). Es ist an dieser Stelle irrelevant, welche Art von Objekt es ist, Aktivität, Fragment oder irgendetwas anderes. Solange es die Schnittstelle implementiert, die Sie benötigen, ist alles in Ordnung.