본문 바로가기

프로그래밍/안드로이드

[안드로이드/Android] 안드로이드 인텐트 - Activity 간에 값을 주고 받기

[안드로이드] 안드로이드 인텐트 - Activity 간에 값을 주고 받기


Activity 액티비티

인텐트 - 1

인텐트 - 2                        

Activity 간에 값 전달 하기                ☜ 현재 보는 곳


또다른 Activity를 호출할 때는 보통 "Intent라는 놈을 사용합니다.
예를 들면

Intent t = new Intent(A.this, B.class);
t.putExtra("aData", "abc");
startActivity(t);

저는 주로 이러한 방법으로 쓰죠.

그러면 B라는 Activity를 호출하는데 거기에 "aData"라는 이름으로 "abc"라는 값을 같이 보래라. 하는거랑 동일하더라구요..

그르면 B에서는 우째 받느냐.
Intent t = getIntent();
String value = t.getStringExtra("aData");
 
라고 쓰면 이제 B에서도 "abc"라는 문자열을 동일하게 쓸수가 있죠.

근데. 가끔은 주고 다시 받아야 할 경우가 생깁니다. 단순히 생각하면 B에서 A를 호출할때 동일하게 하면 되지 않느냐?  라고 생각할수 있지만 이번상황은 약간 다르게 되어 있습니다. 머시냐 하믄요.

간단한 게임을 만든다라고 가정을 합시다.

게임 실행화면이 있고 화면에 화면을 터치하면 게임이 시작됩니다.
A라는 화면 위에 B라는 화면을 투명하게 마치 다이얼 로그 처럼 올린상황입니다.
그러하니 B라는 Activity라는 놈이 사라지면서 A한테 값을 되돌려줘야 하는 상황이 되는거죠. 이런경우 아래와 같이 작성하시면 됩니다. 먼저 코드를 살펴 보도록 하겠습니다.
Intent t = new Intent(A.this, B.class);
t.putExtra("aData", "abc");
startActivityForResult(t, 1);

.......................
....................
protected void onActivityResult(int requestCode, int resultCode, Intent data){
   usper.onActivityResult(requestCode, resultcode, data);
   ........
 
}

.................
................

위와 같이 작성을 하시면 B라는 Activity가 setReqult(int, Intent)를 호출하면서 종료되면 자동으로 A의 onActivityResult메소드를 자동 호출하게 됩니다.

메소드를 살펴보지요..

public void startActivityForResult(Intent intent, int requestCode) 
           - 호출을 받게되는 Activity에게 값을 넘겨 받기 위해 사용되는 메소드
intent - 호출할 인텐트
requestCode - 호출한 놈이 언놈인지 구분하기 위해 사용됨.

protected void onActivityResult(int requestCode, int resultCode, Intent data)

requestCode - 요놈이 startActivityForResult() 메소드의 두번째 매개변수로 넘겨준 

값입니다.

resultCode - 호출된 Activity의 상태값을 나타냅니다. 보통 정상적인 종료가 되었다면  

                RESULT_OK값을 가집니다. RESULT_OK는 1의 값을 가지네요.

data - 역시나 호출된 Intent이겠죠..


위의 코드를 활용하여 보통 이번 게임(...)을 맹글수가 있었습니다.

Activity 액티비티

인텐트 - 1

인텐트 - 2                        

Activity 간에 값 전달 하기                ☜ 현재 보는 곳


덧글]

개발하시다가 온몸이 찌뿌둥하시면 아래 동영상을 따라 스트레칭을 한번하세요.


1. 목디스크 예방을 위한 목운동    ☞  http://jwandroid.tistory.com/192 

2. 손목터널증후군 손목스트레칭으로 예방합시다.     ☞  http://jwandroid.tistory.com/193

3. 개발자 여러분 허리를 세우세요 - 척추체조 1번     ☞  http://jwandroid.tistory.com/194

4. 개발자 여러분 허리를 세우세요 - 척추체조 2번     ☞  http://jwandroid.tistory.com/195

5. 개발자 여러분 허리를 세우세요 - 척추체조 3번     ☞   http://jwandroid.tistory.com/196

6. 개발자 여러분 허리를 세우세요 - 척추체조 4번     ☞  http://jwandroid.tistory.com/197