Android Intent传值 Serializable Parcelable
2016-02-04 00:00
267 查看
摘要: Intent传值,使用putExtra()时所支持的数据类型是有限的。使用Intent传递对象通过Serializable和Parcelable方式实现。
Intent传值,使用putExtra()时所支持的数据类型是有限的。使用Intent传递对象通过Serializable和Parcelable方式实现。
一. Serializable方式:
Serializable是序列化的意思,表示将一个对象转换成可存储或传输的状态。序列化后的对象可以在网络上进行传输或保存到本地。
实现方法:将数据类实现Serializable接口。
例如:
Activity跳转时:intent.putExtra("data", Person实例);
另一个Activity获取: Person person = (Person) getIntent().getSerializableExtra("data");
二. Parcelable方式:
Parcelable是将一个对象进行分解,而分解后的每一部分都是一个Intent所支持的数据类型。
实现方法:
类实现Parcelable接口,并重写describeContents()和writeToParcel()两个方法。再提供一个名为CREATOR的常量,创建Parcelable.Creator接口的一个实现,并泛型指定为Person.接着重写createFromParcel()和newArray()方法。
Activity跳转时:intent.putExtra("data", Person实例);
另一个Activity获取: Person person = (Person) getIntent().getParcelableExtra("data");
注意:Parcelable的效率比Serializable高一些。
三.页码跳转获取传值
Intent传值,使用putExtra()时所支持的数据类型是有限的。使用Intent传递对象通过Serializable和Parcelable方式实现。
一. Serializable方式:
Serializable是序列化的意思,表示将一个对象转换成可存储或传输的状态。序列化后的对象可以在网络上进行传输或保存到本地。
实现方法:将数据类实现Serializable接口。
例如:
public class Person implements serializable{ String name; public void setName(String name){ this.name = name; } public String getName(){ return name; } }
Activity跳转时:intent.putExtra("data", Person实例);
另一个Activity获取: Person person = (Person) getIntent().getSerializableExtra("data");
二. Parcelable方式:
Parcelable是将一个对象进行分解,而分解后的每一部分都是一个Intent所支持的数据类型。
实现方法:
类实现Parcelable接口,并重写describeContents()和writeToParcel()两个方法。再提供一个名为CREATOR的常量,创建Parcelable.Creator接口的一个实现,并泛型指定为Person.接着重写createFromParcel()和newArray()方法。
Activity跳转时:intent.putExtra("data", Person实例);
另一个Activity获取: Person person = (Person) getIntent().getParcelableExtra("data");
注意:Parcelable的效率比Serializable高一些。
三.页码跳转获取传值
Intent intent = getIntent(); String className = getArguments() != null ? getArguments().getString("classname") : null; if (className == null) { className = intent.getComponent().getClassName(); } if (className.equals(Class1.class.getName())){}
相关文章推荐
- C#、ASP.NET通用扩展工具类之TypeParse
- C#、ASP.NET通用扩展工具类之LogicSugar
- C#、ASP.NET通用工具类IsWhat?(可以判断数字、身份证、数据类型等等)
- Android封装的http请求实用工具类
- Android开发中4个常用的工具类【Toast、SharedPreferences、网络及屏幕操作】
- Android AES加密工具类分享
- 超实用的android网络工具类
- 实例详解Android快速开发工具类总结
- Android 数据存储之 FileInputStream 工具类及FileInputStream类的使用
- Android开发之MediaPlayer多媒体(音频,视频)播放工具类
- Android开发之超强图片工具类BitmapUtil完整实例
- Android中Intent传递对象的两种方法Serializable,Parcelable
- Android中使用Intent在Activity之间传递对象(使用Serializable或者Parcelable)的方法
- Android开发实现的IntentUtil跳转多功能工具类【包含视频、音频、图片、摄像头等操作功能】
- 19个Android常用工具类汇总
- Android开发之多媒体文件获取工具类实例【音频,视频,图片等】
- android中Intent传值与Bundle传值的区别详解
- ASP.NET简单好用功能齐全图片上传工具类(水印、缩略图、裁剪等)
- BeanUtils工具类的使用
- 工具类汇总