이전 게시글과 이어지는 내용입니다.
[안드로이드] 프로젝트에 새로운 액티비티 추가하기 - http://snowbora.com/400
[안드로이드] 인텐트를 이용한 Activity간 이동 - http://snowbora.com/399
이번에는 인텐트(Intent)를 이용해서 데이터를 주고 받는 방법에 대해서 알아보겠습니다.
우선 첫번째 액티비티(firstActivity.java) 파일입니다.
01.package Intent.Example;02. 03.import java.io.Serializable;04. 05.import android.app.Activity;06.import android.content.Intent;07.import android.os.Bundle;08.import android.view.View;09.import android.widget.Button;10. 11.public class firstActivity extends Activity {12. /** Called when the activity is first created. */13. @Override14. public void onCreate(Bundle savedInstanceState) {15. super.onCreate(savedInstanceState);16. setContentView(R.layout.main);17. 18. Button btnTest = (Button)findViewById(R.id.btnLaunch2ndActivity);19. btnTest.setOnClickListener(myButtonClick);20. }21. 22. Button.OnClickListener myButtonClick = new Button.OnClickListener()23. {24. public void onClick(View v)25. {26. Intent intent = new Intent(firstActivity.this, secondActivity.class);27. 28. MyObject obj = new MyObject(314, "SnowDeer");29. intent.putExtra("StringData_1", "첫번째 String 데이터");30. intent.putExtra("StringData_2", "두번째 String 데이터");31. intent.putExtra("ObjectData", obj);32. 33. startActivity(intent);34. }35. };36.}37. 38.class MyObject implements Serializable39.{40. int nID;41. String strName;42. 43. MyObject(int _id, String _Name)44. {45. nID = _id;46. strName = _Name;47. }48.};
그리고 두번째 액티비티(secondActivity.java)로 가보겠습니다.
01.package Intent.Example;02. 03.import android.app.Activity;04.import android.content.Intent;05.import android.os.Bundle;06.import android.view.View;07.import android.widget.Button;08.import android.widget.TextView;09. 10.public class secondActivity extends Activity {11. /** Called when the activity is first created. */12. @Override13. public void onCreate(Bundle savedInstanceState) {14. super.onCreate(savedInstanceState);15. setContentView(R.layout.main_2);16. 17. TextView tvView = (TextView)findViewById(R.id.tvTextView);18. 19. Intent intent = getIntent();20. if (intent != null)21. {22. String strText = "";23. MyObject obj;24. 25. obj = (MyObject)intent.getSerializableExtra("ObjectData");26. 27. strText = "StringData_1 : " + intent.getStringExtra("StringData_1") + "\n" +28. "StringData_2 : " + intent.getStringExtra("StringData_2") + "\n" +29. "MyObject.ID : " + obj.nID + "\n" +30. "MyObject.Name : " + obj.strName;31. 32. tvView.setText(strText);33. }34. }35. 36. Button.OnClickListener myButtonClick = new Button.OnClickListener()37. {38. public void onClick(View v)39. {40. Intent intent = new Intent(secondActivity.this, firstActivity.class);41. startActivity(intent);42. }43. };44.}
전체 프로젝트 파일 첨부합니다.
IntentExample.zip