Android 中两个Activity 之间的传值问题
程序员文章站
2023-12-12 17:14:52
android 中两个activity 之间的传值问题
在android项目中,有时需要一些全局的静态变量来保存一些数据,这样在关闭赋值界面后,其他的页面还可以调用这些数...
android 中两个activity 之间的传值问题
在android项目中,有时需要一些全局的静态变量来保存一些数据,这样在关闭赋值界面后,其他的页面还可以调用这些数据。
但是我们知道,在java中全局静态变量(java中没有全局变量这一个概念,但是java提供了public static关键字来实现一些类似于全局变量的关键字)都是在程序加载时就放人到内存中,它是存储在方法区里的。如果程序不结束,它将一直存在。这是会影响到系统的性能的。那么在android中可不可以不通过这种方式来传递值呢?
今天自己做了一个小demo,感觉还不错:不通过全局静态变量而实现两个activity之间传递数据。
一个sendactivity(保存数据的一方,或者是传递数据的一方),一个receiveractivity(使用数据的一方)为了简单起见,每个activity对应的布局文件中都只有一个按钮。
sendactivity的java代码
public class sendactivity extends activity { @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_send); //获取按钮对象 button btnsendbutton = (button)findviewbyid(r.id.btnsend); btnsendbutton.setonclicklistener(new onclicklistener() { public void onclick(view v) { intent intent = new intent(); //第一参数取的是这个应用程序的context,生命周期是整个应用 //第二个参数是要跳转的页面的全路径 intent.setclassname( getapplicationcontext(), "com.example.testofdialog.receiveactivity" ); //bundle类用作携带数据,它类似于map,用于存放key-value名值对形式的值 bundle b = new bundle(); b.putstring("我是key", "这里就是你要传递的内容了"); //此处使用putextras,接受方就响应的使用getextra intent.putextras( b ); startactivity(intent); // 关闭当前页面 system.exit(0); //无论是exit还是finish都是可以的 //sendactivity.this.finish(); } }); } }
receiveactivity的java代码
public class receiveactivity extends activity { @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_receive); button btnreceivebutton = (button)findviewbyid(r.id.btnreceive); btnreceivebutton.setonclicklistener(new onclicklistener() { public void onclick(view v) { //最后的参数一定要和发送方的相同,否则得到空值 string rstring = getintent().getextras().getstring("我是key"); toast.maketext(receiveactivity.this, rstring, toast.length_short).show(); } }); } }
这里只是介绍了两个activity之间的通过intent传值的,那么如果有三个activity是依次显示的,但是,第三个activity需要用到第一个activity中的值,这种方法是否还能够发挥功效?是否还有其他更好的方法?
以上就是android 两个activity 之间的传值问题,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!