컴퓨터공부/Android

Activity 간 데이터 주고 받기

achivenKakao 2011. 6. 12. 12:20
startActivityForResult(Intent i, int requestCode) 와 onActivityResult(int requestCode, int resultCode, Intent data)가 쌍으로 이루어져 Activity간 데이터를 주고 받을 수 있다.
 

getIntent() 함수는 현재 Intent를 호출한 Intent를 반환한다.(Return the intent that started this activity.)
즉, 아래 예제에서 Activity B에서 getIntent()를 실행하면 Activity A의 Intent i 가 리턴 되는 것이다. 


+


Activity A
 
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.BTN_planview:
Intent i = new Intent(this, Plan.class);
startActivityForResult(i, GET_TODODATA);
break;
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode)
{
case GET_TODODATA:
if(resultCode == RESULT_OK){
// 반환된 값 확인
btnfirst.setText(data.getStringExtra("key"));

}else{
// 오류 표시
}
break;
}
}


Activity B

  public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.BTN_practice :
/*EditText에서 입력한 내용을 previous activity로 넘긴다.*/ 
// 현재 Intent를 호출한 Intent를 반환
Intent PreIntent = getIntent();
PreIntent.putExtra("key", btnETfirst.getText().toString());
setResult(RESULT_OK, PreIntent);
// 현재 activity를 끝내고 이전  activity로 이동한다.
finish();
break;
}