이전 게시글과 이어지는 내용입니다.
[안드로이드] 프로젝트에 새로운 액티비티 추가하기 - 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.
@Override
14.
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
Serializable
39.
{
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.
@Override
13.
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.
}
전체 프로젝트 파일 첨부합니다.