第一种:第一个Activity
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
/**
* 通过这个方法跳转到activity2界面*/
public
void
gotoActivity2(View v){
//创建一个意图
Intent intent=
new
Intent(
this
,MainActivity2.
class
);
//第一种传值方式
Bundle bundle=
new
Bundle();
bundle.putString(
"name"
,
"zhangsan"
);
bundle.putInt(
"age"
,
23
);
intent.putExtra(
"person"
, bundle);
//启动另一个activity
startActivity(intent);
}
|
第二个Activity
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
/**
* Activity被创建时调用
* 可以在该方法中初始化UI组件
* 该方法调用完毕会调用onStart()方法
* */
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
System.out.println(
"MainActivity2-onCreate()"
);
//获取上一个activity传过来的参数
Intent intent=getIntent();
Bundle bundle=intent.getBundleExtra(
"person"
);
String name= bundle.getString(
"name"
);
int
age=bundle.getInt(
"age"
);
System.out.println(name+
" : "
+age);
TextView textView=(TextView) findViewById(R.id.textView2);
textView.setText(
"name="
+name+
" age="
+age);
}
|
第二种:activity1
1
2
3
|
//第二种传值方式
intent.putExtra(
"name"
,
"小白"
);
startActivity(intent);
|
activity2
1
2
3
4
|
Intent intent=getIntent();
String name2= intent.getStringExtra(
"name"
);
TextView textView=(TextView) findViewById(R.id.textView2);
textView.setText(
"name2="
+name2);
|
传递自定义类型(自定义类,自定义类必须序列化)
activity1
1
2
3
4
|
//传递自定义类型
Cat cat=
new
Cat(
1
,
"校花"
,
23
);
intent.putExtra(
"cat"
, cat);
startActivity(intent);
|
activity2
1
2
3
4
5
|
//第二种
String name2= intent.getStringExtra(
"name"
);
Cat cat=(Cat) intent.getSerializableExtra(
"cat"
);
TextView textView=(TextView) findViewById(R.id.textView2);
textView.setText(
"cat="
+cat.toString());
|
本文转自 matengbing 51CTO博客,原文链接:http://blog.51cto.com/matengbing/1880953