본문 바로가기

Android/Knowhow

fragment에서 onActivityResult() 받기




MainFragment에서 onActivityResult()가 호출되어야 하는데, MainActivity에서 onActivityResult()가 호출된다.




- Dialog에서 fragment.startActivityForResult()를 호출할 수 없다. MainActivity의 lifecycle에 따라 동작하도록 되어있다.


- 이벤트 버스를 만드려면 복잡하다.


- Activity의 onActivityResult()에서 requestCode를 변환하고 Fragment의 onActivityResult()를 직접 호출하도록 했다. 정상 동작한다.


1
2
3
4
5
6
7
8
9
//Activity의 onActivityResult()
 
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    int request = requestCode & 0xffff;
 
    Fragment fragment =  getSupportFragmentManager().findFragmentByTag(태그명);
    fragment.onActivityResult(request, resultCode, data);
}
cs


출처 http://wifi-z.tistory.com/4