Kotlin

코틀린 fragment 내부에서 onActivityResult 받기

Machine_웅 2019. 4. 25. 23:50
728x90
반응형

 

 

 

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

 

 

출처 : https://violentjy.tistory.com/104

728x90
반응형