Intent传递对象

Intent的用法大家比较熟悉了,可以借助它来启动活动,发送广播,启动服务等。在进行上述操作的时候,还可以在Intent中添加一些附加数据, 以达到传值的效果,比如在FirstActivity中添加如下代码

Intent intent=new Intent(HLActivity.this,SecondActivity.class);

intent.putExtra("string_data","hello");

intent.putExtra("int_data",100);

startActivity(intent);

这里调用了Intent的putExtra()方法来添加要传递的数据,之后在SecondActivity中就可以得到这些值了,代码如下:

getIntent().getStringExtra("string_data");

getIntent().getIntExtra("int_data",0);

但是putExtra()方法中所支持的数据类型是有限的,虽然常用的一些数据类型它都支持,但是当你想去传递一些自定义对象的时候不方便。

使用Intent传递对象通常有两种实现方式,Serializable和Parcelable

Serializable是序列化的意思,表示将一个对象转换成可存储或可传输的状态。序列化后的对象可以在网络上进行传输,也可以存储到本地。序列化方法很简单,只需让一个类去实现Serializable这个接口就可以了。比如一个Person类,其中包含了name和age这两个字段,想要将其序列化就可以这样写。

public class Person implements Serializable

{

private String name;

private int age;

setters getters;            //set和get方法

}

FirstActivity:

Person person=new Person();

person.setName("Tom");

person.setAge(20);

Intent intent=new Intent(FirstActivity.this,SecondActivity.class);

intent.putExtra("person_data",person);

startActivity(intent);

SecondActivity:

Person person=(Person)getIntent().getSerializableExtra("person_data");

时间: 2024-11-03 00:37:20

Intent传递对象的相关文章

android#使用Intent传递对象

参考自<第一行代码>——郭霖 Intent的用法相信你已经比较熟悉了,我们可以借助它来启动活动.发送广播.启动服务等.在进行上述操作的时候,我们还可以在Intent中添加一些附加数据,以达到传值的效果,比如在FirstActivity中添加如下代码: Intent intent = new Intent(FirstActivity.this, SecondActivity.class); intent.putExtra("string_data", "hello&

使用Intent传递对象

我们可以借助Intent来启动活动,发送广播,启动服务等. 还可以通过putExtra()方法传递一些数据. 但我们会发现putExtra()方法中所支持的类型是有限的.当我们想去传递一些自定义对象的时候,会发现无法通过putExtra()的方法进行传递. 但Intent是可以传递对象的. 使用Intent传递对象的通常有两种方式 Serializable 和 Parcelable. Serializable方式 Serializable是序列化的意思,表示将一个对象转换成可存储或可传输的状态.

Intent传递对象——Serializable和Parcelable区别

前两篇文章讨论了Serializable和Parcelable实现Intent之间传递对象和对象数组的方式,两种方法实现上相似,效果一致,怎么选择用哪种方法实现呢? Intent在不同的组件中传递对象数据的应用非常普遍.下面介绍两种通过Intent传递对象的方法. 1.实现Serializable接口 2.实现Parcelable接口 为什么要将对象序列化? 1.永久性保存对象,保存对象的字节序列到本地文件中: 2.用过序列化对象在网络中传递对象: 3.通过序列化对象在进程间传递对象. 1.实现

Android Intent传递对象小结

效果: 想看实例的,感兴趣的可以看之前的一篇文章 Android ViewPager Fragment实现选项卡 部分关键代码: public class SerializeActivity extends Activity implements Serializable { Button btnlist, btnParcelable, btnSerialze; private final String TAG = "SerializeActivity"; public final s

Intent传递对象的几种方式

原创文章,转载请注明 http://blog.csdn.net/leejizhou/article/details/51105060 李济洲的博客 Intent的用法相信你已经比较熟悉了,Intent可以用来启动Activity,Service等等,同时我们也可以通过Intent来进行传递数据,比如以下代码 Intent intent=new Intent(MainActivity.this,OtherActivity.class); intent.putExtra("name",&q

Intent传递对象——Serializable和Parcelable差别

前两篇文章讨论了Serializable和Parcelable实现Intent之间传递对象和对象数组的方式.两种方法实现上相似,效果一致,怎么选择用哪种方法实现呢? Intent在不同的组件中传递对象数据的应用很普遍.以下介绍两种通过Intent传递对象的方法. 1.实现Serializable接口 2.实现Parcelable接口 为什么要将对象序列化? 1.永久性保存对象,保存对象的字节序列到本地文件里. 2.用过序列化对象在网络中传递对象: 3.通过序列化对象在进程间传递对象. 1.实现S

Android 全局获取 Context 与使用 Intent 传递对象

=====================全局获取 Context======================== Android 开发中很多地方需要用到 Context,比如弹出 Toast.启动活动.发送广播.操作数据库…… 由于很多操作都是在活动中进行的,而活动本身就是一个 Context 对象,所以获取 Context 并不是那么困难. 但是,当应用程序的架构逐渐开始复杂起来的时候,很多的逻辑代码都将脱离 Activity 类,由此在某些情况下,获取 Context 并非那么容易. An

Android开发——使用intent传递对象

intent传递对象有两种方法: 方式一:Serializable 方式 方式二:Parcelable方式 在这里不多介绍了,这一篇就是快速上手使用教程,至于详细原理介绍的,请看这一篇http://www.cnblogs.com/kexing/p/8270667.html 我们先在Android Studio下载一个插件android parcelable code generator,安装完毕重启Android Studio之后,我们创建一个java bean类,写上成员变量,直接快速生成ge

Android高级技巧-intent传递对象

一.使用intent传递对象 (1)使用serializable接口 persion类 package com.example.jixujinjie; import java.io.Serializable; /** * Created by 海绵宝宝 on 2019/4/25. */ public class Persion implements Serializable{//intent不允许传递对象类所以我们把他序列化,继承Serializab private int age; priva