android Activity之间的数据交换

来源:互联网 发布:淘宝达人后台网址 编辑:程序博客网 时间:2024/05/16 12:07

Activtiy之间的数据交换分为俩种:第一种为从开始Activity跳转到目标Activity,将数据带到目标Activity。第二种为带返回值的Activity跳转,必须关闭目标Activity。

说一下常用的Intent携带数据的函数

第一种数据交换方式:

常用方法:

putExtras(Bundle data):向Intent中放要携带的数据包

Bundle getExtras():取出携带的数据包

putExtra(String name,Xxx value):向Intent中按key-value对的形式存入数据

getXxxExtra(String name):取出指定类型的数据

 

上面俩个方法有一个Bundle对象,可以使用该对象提供的常用方法携带更多的数据:

putXxx(String key,Xxx data):向·Bundle放简单的数据类型。如Int,long,String等等

putSerializable(String key,Serializable data):向Bundle中放入一个可序列化的对象,可以自定义一个class,如public class EventTaskimplements Serializable在后面实现序列化,eclipse会自动添加形如private static final long serialVersionUID = 1L,然后就可以使用了。该方法主要可以自定义一个数据格式,来传输数据。

取出数据:

getXxx(String key):从中取出指定类型的数据

getSerializable(String key):取出可序列化数据,然后转型即可恢复自定义格式的数据内容

其中putExtra依旧存放在Bundle中,只不过变成了快捷方式

开启方式:startActivity(Intent intent)

第二种数据交换方式:跳转到目标Activity,携带目标的数据,关闭目标Activity再返回并携带数据。

要重写的方法:

开启的方法:startActivity(Intent intent,int requestCode)

这个方法的requestCode代表有start的界面哪个子控件开启的

start的Activity里要重写的方法:

onActivityResult(int requestCode,int resultCode,Intent intent)

其中requestCode代表上面的请求码,resultCode代表跳转到那个界面的Activity,intent代表跳转到目标Activity中返回的数据

目标的Activity里要做的操作:

携带数据包有以下俩种方式:

第一种获取跳转前的Intent,放入数据。getIntent(),返回值类型,Intent

第二种重新创建Intent:new Intent()

随后,携带数据包存放格式像前面的一样。然后使用方法setResult(int resultCode,Intent intent)返回数据

最重要的一点要关闭目标Activity,否则这种类型不会返回数据。调用方法finish()

0 0
原创粉丝点击