使用Inten的putExtra传递
第一个Activity中
1
2
3
4
5
6
|
//创建意图对象
Intent intent =
new
Intent(
this
,TwoActivity.
class
);
//设置传递键值对
intent.putExtra(
"data"
,str);
//激活意图
startActivity(intent);
|
第二个Activity中
1
2
3
4
5
6
|
// 获取意图对象
Intent intent = getIntent();
//获取传递的值
String str = intent.getStringExtra(
"data"
);
//设置值
tv.setText(str);
|
使用Intention的Bundle传递
第一个Activity中
1
2
3
4
5
6
7
8
9
|
//创建意图对象
Intent intent =
new
Intent(MainActivity.
this
,TwoActivity.
class
);
//用数据捆传递数据
Bundle bundle =
new
Bundle();
bundle.putString(
"data"
, str);
//把数据捆设置改意图
intent.putExtra(
"bun"
, bundle);
//激活意图
startActivity(intent);
|
第二个Activity
1
2
3
4
5
|
//获取Bundle
Intent intent = getIntent();
Bundle bundle = intent.getBundleExtra(
"bun"
);
String str = bundle.getString(
"data"
);
tv.setText(str);
|
使用Activity销毁时传递数据
第一个Activity中
1
2
3
4
5
6
7
8
9
10
|
Intent intent =
new
Intent(MainActivity.
this
,TwoActivity.
class
);
//用一种特殊方式开启Activity
startActivityForResult(intent,
11
);
//设置数据
protected
void
onActivityResult(
int
requestCode,
int
resultCode, Intent data) {
super
.onActivityResult(requestCode, resultCode, data);
String str = data.getStringExtra(
"data"
);
tvOne.setText(str);
}
|
第二个activity中
1
2
3
4
5
6
|
//设置返回的数据
Intent intent =
new
Intent();
intent.putExtra(
"data"
, edtOne.getText().toString().trim());
setResult(
3
, intent);
//关闭当前activity
finish();
|
SharedPreferences传递数据
第一个Activity中
1
2
3
4
5
6
7
8
9
|
SharedPreferences sp =
this
.getSharedPreferences(
"info"
,
1
);
//获取sp编辑器
Editor edit = sp.edit();
edit.putString(
"data"
, str);
edit.commit();
//创建意图对象
Intent intent =
new
Intent(MainActivity.
this
,TwoActivity.
class
);
//激活意图
startActivity(intent);
|
第二个Activity中
1
2
3
|
SharedPreferences sp =
this
.getSharedPreferences(
"info"
,
1
);
//设置数据
tv.setText(sp.getString(
"data"
,
""
));
|
使用序列化对象Seriazable
工具类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import
java.io.Serializable;
class
DataBean
implements
Serializable {
private
String name;
private
String sex;
public
String getName() {
return
name;
}
public
void
setName(String name) {
this
.name = name;
}
public
String getSex() {
return
sex;
}
public
void
setSex(String sex) {
this
.sex = sex;
}
}
|
第一个Activity
1
2
3
4
5
6
7
8
|
//创建意图
Intent intent =
new
Intent(MainActivity.
this
,TwoActivity.
class
);
DataBean bean =
new
DataBean();
//通过set方法把数据保存到DataBean对象中
bean.setName(
"啦啦"
);
bean.setSex(
"男"
);
intent.putExtra(
"key"
, bean);
startActivity(intent);
|
第二个Activity
1
2
3
4
5
6
7
8
|
Intent intent = getIntent();
//反序列化数据对象
Serializable se = intent.getSerializableExtra(
"key"
);
if
(se
instanceof
DataBean){
//获取到携带数据的DataBean对象db
DataBean db = (DataBean) se;
tv.setText(db.getName()+
"==="
+db.getSex());
}
|
使用静态变量传递数据
第一个Activity
1
2
3
4
|
Intent intent =
new
Intent(MainActivity.
this
,TwoActivity.
class
);
TwoActivity.name=
"牛逼"
;
TwoActivity.str=
"你说"
;
startActivity(intent);
|
第二个Activity
1
2
3
4
|
//静态变量
protected
static
String name;
protected
static
String str;
tv.setText(str+name);
|
以上所述是小编给大家介绍的关于Android Activity之间传递数据的6种方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!