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

DialogFragment 질문 입니다.

0 추천

A라는 Fragment에 B라는 DialogFragment를 띄웠습니다.

B에서 어떤 데이터를 바꾸고 A의 Fragment화면에서도 갱신을 하고 싶은데..

B는 DialogFragment이기 때문에 화면이 사라져도 A의 Fragment 생명주기를 다시 타지 않더라구요.

BroadCast를 써서 B화면이 없어질 때 A에게 날려주면 되긴 하는데, 혹시 다른 방법이 없을까요?

조언부탁드립니다 ^_^

구아바구바 (510 포인트) 님이 2013년 5월 21일 질문

2개의 답변

0 추천
fragment와 dialogFragment가 같은 activity에서 돌아가고 있는 상태이기 때문에 activity에 변수를 할당해서 B에서 쓰고 A에서 사용할 수 있습니다.

아니면 B객체를 A에서 생성하기 때문에 A에서 B개체를 생성한다음 리스너를 넘겨주면 B에서 종료할때 리스너를 실행시켜줘도 됩니다.
congbab (5,140 포인트) 님이 2013년 5월 21일 답변
답변 감사합니다 ^^

많은 도움이 되었습니다!
0 추천

다음과 같이 B라는 dialogFragment를 show() 를 호출할 때 호출하는 A라는 fragment를 targetFragment로 지정하고

B_DialogFragment B = new B_DialogFragment();
B.setTargetFragment(A_Fragment.this, 0);
B.show(ft, "someTag");

B_DialogFragment에서 필요한 때(다이얼로그를 닫는다거나 버튼이 눌렸을 때 등)에 다음과 같은 구문을 실행합니다.

getTargetFragment().onActivityResult(0, 0, null);

그러면 A_tFragment에서 다음과 같이 내용을 전달받을 수 있습니다.

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
	super.onActivityResult(requestCode, resultCode, data);
	
	someMethod();
}

 

florong (140 포인트) 님이 2014년 3월 19일 답변
...