欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

关于Android Activity之间传递数据的6种方式

程序员文章站 2023-12-02 15:30:16
使用inten的putextra传递 第一个activity中 //创建意图对象 intent intent = new intent(this,twoac...

使用inten的putextra传递

第一个activity中

//创建意图对象
 intent intent = new intent(this,twoactivity.class);
 //设置传递键值对
 intent.putextra("data",str);
 //激活意图
 startactivity(intent);

第二个activity中

// 获取意图对象
 intent intent = getintent();
 //获取传递的值
 string str = intent.getstringextra("data");
 //设置值
 tv.settext(str);

使用intention的bundle传递

第一个activity中

//创建意图对象
 intent intent = new intent(mainactivity.this,twoactivity.class);
 //用数据捆传递数据
 bundle bundle = new bundle();
 bundle.putstring("data", str);
 //把数据捆设置改意图
 intent.putextra("bun", bundle);
 //激活意图
 startactivity(intent);

第二个activity

//获取bundle
 intent intent = getintent();
 bundle bundle = intent.getbundleextra("bun");
 string str = bundle.getstring("data");
 tv.settext(str);

使用activity销毁时传递数据

第一个activity中

  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中

//设置返回的数据
 intent intent = new intent();
 intent.putextra("data", edtone.gettext().tostring().trim());
 setresult(3, intent);
 //关闭当前activity
 finish();

sharedpreferences传递数据

第一个activity中

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中

sharedpreferences sp = this.getsharedpreferences("info", 1);
 //设置数据
 tv.settext(sp.getstring("data", ""));

使用序列化对象seriazable

工具类

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

//创建意图
 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

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

intent intent = new intent(mainactivity.this,twoactivity.class);
  twoactivity.name="牛逼";
  twoactivity.str="你说";
  startactivity(intent);

第二个activity

//静态变量
protected static string name;
protected static string str;
tv.settext(str+name);

以上所述是小编给大家介绍的关于android activity之间传递数据的6种方式,希望对大家有所帮助