关于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种方式,希望对大家有所帮助
上一篇: php 获得汉字拼音首字母的函数
下一篇: 如今的个人博客还能盈利吗?