关于Android Activity之间传递数据的6种方式
使用Inten的putExtra传递
第一个Activity中
//创建意图对象
Intentintent=newIntent(this,TwoActivity.class);
//设置传递键值对
intent.putExtra("data",str);
//激活意图
startActivity(intent);
第二个Activity中
//获取意图对象
Intentintent=getIntent();
//获取传递的值
Stringstr=intent.getStringExtra("data");
//设置值
tv.setText(str);
使用Intention的Bundle传递
第一个Activity中
//创建意图对象
Intentintent=newIntent(MainActivity.this,TwoActivity.class);
//用数据捆传递数据
Bundlebundle=newBundle();
bundle.putString("data",str);
//把数据捆设置改意图
intent.putExtra("bun",bundle);
//激活意图
startActivity(intent);
第二个Activity
//获取Bundle
Intentintent=getIntent();
Bundlebundle=intent.getBundleExtra("bun");
Stringstr=bundle.getString("data");
tv.setText(str);
使用Activity销毁时传递数据
第一个Activity中
Intentintent=newIntent(MainActivity.this,TwoActivity.class);
//用一种特殊方式开启Activity
startActivityForResult(intent,11);
//设置数据
protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){
super.onActivityResult(requestCode,resultCode,data);
Stringstr=data.getStringExtra("data");
tvOne.setText(str);
}
第二个activity中
//设置返回的数据
Intentintent=newIntent();
intent.putExtra("data",edtOne.getText().toString().trim());
setResult(3,intent);
//关闭当前activity
finish();
SharedPreferences传递数据
第一个Activity中
SharedPreferencessp=this.getSharedPreferences("info",1);
//获取sp编辑器
Editoredit=sp.edit();
edit.putString("data",str);
edit.commit();
//创建意图对象
Intentintent=newIntent(MainActivity.this,TwoActivity.class);
//激活意图
startActivity(intent);
第二个Activity中
SharedPreferencessp=this.getSharedPreferences("info",1);
//设置数据
tv.setText(sp.getString("data",""));
使用序列化对象Seriazable
工具类
importjava.io.Serializable;
classDataBeanimplementsSerializable{
privateStringname;
privateStringsex;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetSex(){
returnsex;
}
publicvoidsetSex(Stringsex){
this.sex=sex;
}
}
第一个Activity
//创建意图
Intentintent=newIntent(MainActivity.this,TwoActivity.class);
DataBeanbean=newDataBean();
//通过set方法把数据保存到DataBean对象中
bean.setName("啦啦");
bean.setSex("男");
intent.putExtra("key",bean);
startActivity(intent);
第二个Activity
Intentintent=getIntent();
//反序列化数据对象
Serializablese=intent.getSerializableExtra("key");
if(seinstanceofDataBean){
//获取到携带数据的DataBean对象db
DataBeandb=(DataBean)se;
tv.setText(db.getName()+"==="+db.getSex());
}
使用静态变量传递数据
第一个Activity
Intentintent=newIntent(MainActivity.this,TwoActivity.class); TwoActivity.name="牛逼"; TwoActivity.str="你说"; startActivity(intent);
第二个Activity
//静态变量 protectedstaticStringname; protectedstaticStringstr; tv.setText(str+name);
以上所述是小编给大家介绍的关于AndroidActivity之间传递数据的6种方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!