2013-08-12 36 views
10

Tôi có thể dễ dàng liên lạc giữa hai hoạt động fragment s bằng cách gọi lại interface. Theo cách đó, tôi đã thực hiện một giao diện trong ParentFragment để giao tiếp.Cách liên lạc giữa hai mảnh vỡ con bên trong một mảnh ghép lồng nhau

Nhưng trong trường hợp của các hoạt động, tôi đã sử dụng -

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

Và trong trường hợp hiện tại, tôi đang sử dụng mCallback = (OnHeadlineSelectedListener) getParentFragment(); thay vì mCallback = (OnHeadlineSelectedListener) activity;. Mọi thứ đều hoạt động tốt. Cách tiếp cận này có được không? Hoặc tôi nên làm điều đó vào một chủ đề khác thay vì onAttach()?

Trả lời

7

Điều truyền là đảm bảo đối tượng nhất định là thể hiện của lớp thực hiện giao diện đã cho (trong trường hợp này là OnHeadlineSelectedListener). Nó không liên quan vào thời điểm này loại đối tượng nó là nó hoạt động, mảnh vỡ hoặc bất cứ điều gì khác. Miễn là nó thực hiện các giao diện bạn cần, nó là tất cả tốt.

Các vấn đề liên quan