반응형
잠깐 이 문제로 많은 난항을 겼었다.
일반적인 Activity의 경우에는 startActivityForResult로 호출하고 호출되어진 Activity에서 setResult에 결과를 넣어주면 호출한 Activity에서 onActivityResult를 통해 결과를 받을 수 있다.
그런데, 문제는 TabActivity를 호출해서 TabHost의 Activity에서 결과를 돌려주려면 문제가 생겼다.
다음 상황이다.
A.class - 메인 페이지, B 클래스를 startActivityForResult로 호출
B.class - TabActivity로서 TabHost로 C 클래스를 갖고 있다.
C.class - setResult로 결과를 돌려준다.
이러한 구조를 갖고 있을 경우에 결과를 돌려줄 때, C 클래스에서 결과를 돌려줄 때는 다음과 같이 해주어야 한다.
if( getParent() == null ) setResult(RESULT_OK, intent);
일반적인 Activity의 경우에는 startActivityForResult로 호출하고 호출되어진 Activity에서 setResult에 결과를 넣어주면 호출한 Activity에서 onActivityResult를 통해 결과를 받을 수 있다.
그런데, 문제는 TabActivity를 호출해서 TabHost의 Activity에서 결과를 돌려주려면 문제가 생겼다.
다음 상황이다.
A.class - 메인 페이지, B 클래스를 startActivityForResult로 호출
B.class - TabActivity로서 TabHost로 C 클래스를 갖고 있다.
C.class - setResult로 결과를 돌려준다.
이러한 구조를 갖고 있을 경우에 결과를 돌려줄 때, C 클래스에서 결과를 돌려줄 때는 다음과 같이 해주어야 한다.
if( getParent() == null ) setResult(RESULT_OK, intent);
else getParent().setResult(RESULT_OK, intent);
TabActivity의 TabHost로 붙어있는 Activity가 아닌 경우에는 getParent 메소드를 호출하면 null의 결과가 나오지만 TabHost로 붙어있는 Activity는 null이 아닌 TabActivity를 돌려받게 된다.
참 간단한 해결법인데, 몰라서 한참 헤매었다. [1]을 참고해서 해결했다. 이름 모를 외국분에게 감사하다.
국내에는 연관된 자료가 하나도 없었다.
Reference
[1] android (http://stackoverflow.com/questions/2497205/how-to-return-a-result-startactivityforresult-from-a-tabhost-activity)
TabActivity의 TabHost로 붙어있는 Activity가 아닌 경우에는 getParent 메소드를 호출하면 null의 결과가 나오지만 TabHost로 붙어있는 Activity는 null이 아닌 TabActivity를 돌려받게 된다.
참 간단한 해결법인데, 몰라서 한참 헤매었다. [1]을 참고해서 해결했다. 이름 모를 외국분에게 감사하다.
국내에는 연관된 자료가 하나도 없었다.
Reference
[1] android (http://stackoverflow.com/questions/2497205/how-to-return-a-result-startactivityforresult-from-a-tabhost-activity)
반응형
'Devlopment > Mobile' 카테고리의 다른 글
안드로이드 게임 엔진 (1) | 2011.12.01 |
---|---|
안드로이드 앱 'SD 카드로 이동', '디바이스로 이동' 기능 (0) | 2011.10.14 |
안드로이드 여러 버전의 APK 배포 (0) | 2011.10.14 |
Windows Phone7 개발 관련 사이트 (0) | 2011.08.08 |
[WIndow Phone7] The type 'System.IObservable`1<T0>' is defined in an assembly that is not referenced. (0) | 2011.08.08 |
java.io.IOException: Unable to open sync connection! 해결법 (6) | 2011.07.12 |
ListView 스크롤시 검은색 배경으로 바뀌는 문제 (0) | 2011.07.12 |
안드로이드 GPS 위치 수신 (0) | 2011.07.12 |
Android 타이틀 바 관련. (0) | 2011.07.11 |
안드로이드 ListView구현시 Adapter의 getView 중복 호출 문제 (0) | 2011.07.11 |