2017-01-19 1 views
0

활동 또는 상위 단편에 첨부 할 수있는 단편이 있습니다. 이 프래그먼트에는 연결된 모든 사람이 구현해야하는 인터페이스가 있습니다. 활동의 경우, 이것은 매우 간단하다 :onAttach 부모 단편에 첨부하기위한 메소드

@Override 
public void onAttach(Context context) { 
    super.onAttach(context); 

    if (context instanceof Activity){ 
     Activity activity =(Activity) context; 
     try { 
      mCallback = (OnMyListener) activity; 
     } catch (ClassCastException e) { 
      throw new ClassCastException(activity.toString() + 
       " must implement OnMyListener"); 
     } 
    } 
} 

는 그러나, 나는이 특정 조각을 호스팅하는 다른 조각의 mCallback 리스너를 설정할 수 없습니다입니다.

+0

'getParentFragment()'를 확인하십시오. null이 아닌 값을 반환하면 또 다른'Fragment'에 있고 인터페이스로 캐스팅을 시도 할 수 있습니다. –

+0

'getParentFragment()'는 내 경우 null을 반환합니다. 상위 단편을 추가하는 적절한 방법이 있습니까? 난 그냥 내 부모 조각에이 조각을 부풀려 –

+0

어떻게 부풀려/호출 자식 조각? –

답변

0

2 조각 사이에서 직접 통신 할 수는 없으므로 호스팅하는 활동을 철저히 조사해야합니다 (그리고 나는 전반부를 이미 구현 한 것을 보았습니다). 그러면 먼저 인스턴스화 필요

ReceiverFragment fragment = (ReceiverFragment) getSupportFragmentManager().findFragmentById(R.id.receiver_fragment_id); 

가 널이라면 다음 활성 송신기 단편의 데이터를 수신 한 후

하면 사용 먼저 수신기 단편의 참조를 해결하여 상기 수신기 단편에 보낼 수 fragment.setArguments (Bundle)을 사용하여 데이터를 전달하십시오. 그렇지 않으면 수신기 단편의 멤버 함수를 직접 호출 할 수 있습니다.

확인 : https://developer.android.com/training/basics/fragments/communicating.html

관련 문제