부제는
Fragment 에서 호출한 startActivityForResult 의 결과값이 Fragment 의 onActivityResult 로 안 와요 ㅠㅠ
오늘도 질문 받아주다가 새로운 지식을 얻었다.
일단, 이전 버전의 fragment 는 잘 모르겠고
andorid.support.v4.app.Fragment 를 이용했다면 분명, Fragment에서도 startActivityForResult가 잘 동작해야 한다.
그런데 이게 fragment 내에 정의된 onActivityResult로 안 온다?! 옴마나?!
싶을 때는 해당 fragment의 상위 activity 코드를 열어보자.
만약, Activity에 onActivityResult method가 override 되어있다면 (사실 만약이 아니고 무조건 그럴 거임)
해당 onActivityResult 코드에 super.onActivityResult 가 빠져있는지 확인해보자. (아마 빠져있을 거임 ㅎㅎ)
알아보니 startActivityResult의 결과는,
먼저 Activity 의 onActivityResult 를 거쳐서 fragment 의 onActivityResult 로 넘어오는 것 같다. (노확실 영어못함)
그리고 그 fragment로 넘겨주는 부분이 Activity 의 onActivityResult 에 정의되어 있는 듯.
그러니 fragment 의 상위 activity 가 onActivityResult를 아예 override 하고 있지 않거나, super.onActivityResult 를 제대로 호출해주고 있다면
fragment 까지 잘 넘어가겟지만,
그렇지 않다면 아예 fragment 의 onActivityResult로 넘어갈 기회조차 잃는 것..
method override 하면서 super.~ 를 지울 때에는 막 지우지말고 역할이 뭔지 판단 후에 지우는 습관을 들이는 것이 좋을 것 같다.
는 나도 잘 못하지만 ㅎㅎㅎ
'Programming > Android' 카테고리의 다른 글
[Android Studio] Error:Execution failed for task ':app:mergeDebugResources'. (0) | 2017.10.20 |
---|---|
[Android studio] Failed to resolve support library (26.0.1) (0) | 2017.10.16 |