- Android의 Activity들은 startActivityForResult() method 통해 sub activity를 만들고 Activity끼리 서로 데이터를 교환 가능하며 그 사이에는 'Extra'라고 하는 통로가 존재.

-

Activity A가 startActivityForResult를 통해 Activity B를 호출
B는 종료되면서 Result값을 통해 Extra 꾸러미를 넘김.
Activity는 Extra 꾸러미 안에 있는 데이터들을 꺼내서 사용할 수 있음.

[Activity A 사이드]
Activity A에서 구현되어야 할 부분
1. int 값의 requestCode 값 설정
2. Intent를 만들어 Activity B를 실행
3. onActivityResult()통해 requestCode 값에 해당하는 결과값을 받아옴.

[Activity B 사이드]
Activity B에서 구현되어야 할 부분
1. Intent를 만들어 데이터 꾸러미를 Intent에 추가시킴
2. 결과값을 보내면서 Extra 꾸러미를 가지고 있는 intent를 함께 넘겨줌.

참고 : http://blog.naver.com/hisukdory?Redirect=Log&logNo=50088038280




public void startActivityForResult(Intent intent, int requestCode)
- 인수가 추가됨, (int requestCode)
- 호출한 대상을 나타내는 식별자이며, 리턴시에 누구에 대한 리턴인가를 구분할 때 사용.
- 여러 Activity를 호출할 경우 리턴받는 method에서 어떤 Activity에 대한 리턴인지를 구분할 수 있어야 하므로 호출되는  Activity별로 고유 번호를 붙인다.
- 0이상의 중복되지 않는 정수를 넘기되 음수를 넘길 경우 리턴을 받지 않겠다는 뜻이다.
- 호출된 Activity가 종료되면 다음 method가 호출되므로 리턴값을 받으려면 method 재정의
protected void onActivityResult(int requstCode, int resultCode, Intent data)
requestCode : Activity 호출 시 전달한 요청코드
resultCode : Activity 실행결과
data intent : 리턴 값 들어 있으므로 data 안의 Extras를 읽음.

'안드로이드' 카테고리의 다른 글

MediaPlayer  (0) 2011.07.19
Activity Cycle  (0) 2011.07.12
Intents and IntentsFilters  (0) 2011.07.12
9.png  (0) 2011.07.12
android의 gravity와 layout_gravity  (0) 2011.07.12

+ Recent posts