2013-08-12 8 views
10

Mogę łatwo komunikować się między dwoma fragment s aktywności przez oddzwonienie interface. W ten sposób zaimplementowałem interfejs do komunikacji w ParentFragment.Jak komunikować się między dwoma dziećmi Fragmenty wewnątrz zagnieżdżonego fragmentu

Jednak w przypadku działalności, używałem -

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

I w tym przypadku używam mCallback = (OnHeadlineSelectedListener) getParentFragment(); zamiast mCallback = (OnHeadlineSelectedListener) activity;. Wszystko działa dobrze. Czy to podejście jest w porządku? A może powinienem zrobić to w innym wątku zamiast: onAttach()?

Odpowiedz

7

Rzucanie polega na upewnieniu się, że pewnym obiektem jest instancja klasy implementująca dany interfejs (w tym przypadku OnHeadlineSelectedListener). W tym momencie nie ma znaczenia, jakiego rodzaju obiektem jest aktywność, fragment czy cokolwiek innego. Dopóki implementuje interfejs, którego potrzebujesz, wszystko jest w porządku.

Powiązane problemy