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
'Android > Knowhow' 카테고리의 다른 글
android Lollipop black image / 롤리팝에서 라운딩 이미지가 검정색으로 나올때 (0) | 2017.01.17 |
---|---|
[selector] 버튼/텍스트뷰의 background와 textColor selector 설정 (0) | 2017.01.05 |
액티비티(프래그먼트) 간에 객체나 리스너를 공유하면 안된다. (0) | 2016.12.27 |
ScrollView의 height를 match_parent하기 (0) | 2016.12.27 |
배열 객체는 가급적 쓰지말자 (0) | 2016.12.23 |