마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

프래그먼트다이얼로그에서 프래그먼트로 이동.

0 추천

 

위의 이미지대로 기능을 구현하려고 합니다.

main[부모]액티비티 아래에 두개의 프래그먼트 클래스가 있습니다.

구현하려는 순서는 다음과 같습니다.

1,프래그먼트2에서 버튼을 눌러 다이얼로그프래그먼트를 띄웁니다.[여기는 완료]

2.다이얼로그프래그먼트에서 다시 버튼을 눌러 프래그먼트1로 이동합니다.

3.프래그먼트1로 이동한 후, 내부의 리스트에서 값을 하나 선택하고 확인버튼을 누릅니다.

4.확인버튼을 누르면 다시 다이얼로그 프래그먼트가 팝업된상태로 되돌아와, 

다이얼로그 내부 텍스트뷰에 선택한 값을 setText합니다.

main<->프래그먼트 나 프래그먼트끼리 데이터를 주고받는 방법은 해봤는데..

이런경우엔 어떻게 구현해야할까요.

프래그먼트 다이얼로그->프래그먼트2->프래그먼트1->프래그먼트2->프래그먼트 다이얼로그

이런식으로 거쳐야 하는지..아니면 프래그먼트 다이얼로그가 직접 프래그먼트 1과 통신이 

가능한지요?

 

 

망고사탕 (5,000 포인트) 님이 2016년 6월 14일 질문

1개의 답변

+1 추천
fragment간 통신의 기본 원칙은 fragment끼리 다이렉트로 통신을 하지 못한다 입니다

그러나 main activity에서는 두 fragment instance로 다이렉트로 통신이 가능합니다

각 fragment에서 사용할 callback(interface)을 구현하신후 main activity에서 implement해서 사용하시면 됩니다

즉 fragment1에서 fragment2로 통신할 경우 fragment1에서 callback method를 호출하면 main activity에서 받아 fragment2로 전달해 주시면 됩니다

참고로 구글에서 fragment간 통신으로 검색하시면 수많은 예제를 보실 수 있으니 이 기회에 찬찬히 보시고 이해하시는걸 추천드려요
prague (26,200 포인트) 님이 2016년 6월 14일 답변
댓글 감사합니다.
메인을 거쳐서 f1과 f2 통신하는 방법은 예전에 했었는데, 다시 공부해야겠네요.  f2에서 시작해서 별도(?)로 수행하는 dialog fragment도 중간에 어떤 프래그먼트나 클래스를 거쳐야 f1의 리스트 값을 가져올 수 있다는 것인데, 이 부분이 궁금합니다. 현재 이런식으로 f2에서 다이얼로그를 팝업합니다.
dialog_value dv= new dialog_value ();
dv.show(getFragmentManager(), "dialog_value ");
...