부제는 

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.~ 를 지울 때에는 막 지우지말고 역할이 뭔지 판단 후에 지우는 습관을 들이는 것이 좋을 것 같다.


는 나도 잘 못하지만 ㅎㅎㅎ

+ Recent posts