Development/Android
Intent를 통한 Activity간 데이터 전달 방법
독행소년
2011. 9. 29. 15:28
main Activity는 child Activity를 생성하여 데이터를 전달하고, 데이터를 전달받은 child Activity는 데이터를 사용하고 그 결과를 main Activity(parent Activity)로 전달할 수 있다.
1. Intent 생성 및 전달 과정(in main Activity)
//Intent 생성 Intent intent = new Intent(this, ActEdit.class); //생성한 Intent에 데이터 입력 intent.putExtra("TextIn", mText.getText().toString()); //생성한 Intent 전달(child Activity로 전환) startActivityForResult(intent,ACT_EDIT); |
2. Intent를 전달받아 사용(in child Activity)
/** * Intent 받기 * 본 Child Activity가 생성되면서 자동으로 Intent를 전달 받은 상태이므로 getIntent() 호출을 통해 전달받은 * Intent를 이용할 수 있음 */ Intent intent = getIntent(); String text = intent.getStringExtra("TextIn"); if(text != null) mEdit.setText(text); |
3. 결과값 리턴(in child Activity)
switch(v.getId()){ case R.id.btnok: // Intent 생성 Intent intent = new Intent(); // 생성한 Intent에 데이터 입력 intent.putExtra("TextOut", mEdit.getText().toString()); // 결과값 설정(결과 코드, 인텐트) this.setResult(RESULT_OK,intent); // 본 Activity 종료 finish(); break; case R.id.btncancel: // 리턴할 데이터(Intent)가 없을 경우 결과 코드만을 설정하여 반환 this.setResult(RESULT_CANCELED); finish(); break; } |
4. 결과값 확인(in main Activity)
protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch(requestCode){ case ACT_EDIT: if(resultCode == RESULT_OK){ mText.setText(data.getStringExtra("TextOut")); } break; } } |