activity之间传递对象的两种方式
2016-01-08 20:53
399 查看
activity之间传递对象有两种方式,第一种方式是类实现Serializable接口,另一种是实现Parcelable接口
第一种方式不用多说:
第二种方式:
通过实现这两个方法describeContents,writeToParcel。在writeToParcel中将成员一一对应写入,在静态方法中一一 对应读出。
第一种方式不用多说:
import java.io.Serializable; /** * Created by Administrator on 2016/1/8. */ public class Cat implements Serializable { private String name; private String age; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
第二种方式:
import android.os.Parcel; import android.os.Parcelable; /** * Created by Administrator on 2016/1/8. */ public class Dog implements Parcelable { private String name; private int age; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public static final Creator<Dog> CREATOR = new Creator<Dog>() { @Override public Dog createFromParcel(Parcel in) { Dog dog=new Dog(); dog.name=in.readString(); dog.sex=in.readString(); dog.age=in.readInt(); return dog; } @Override public Dog[] newArray(int size) { return new Dog[size]; } }; @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(name); dest.writeInt(age); dest.writeString(sex); } }
通过实现这两个方法describeContents,writeToParcel。在writeToParcel中将成员一一对应写入,在静态方法中一一 对应读出。
相关文章推荐
- 《Java虚拟机原理图解》4.JVM机器指令集
- Affinity Photo 图层面板消失的解决办法
- 放麦子
- 【Linux学习】epoll详解
- 机器学习书籍
- extern "c"用法解析
- 父窗体包含两个子窗体
- Egret3D 研究报告(一)初试
- 第一个数字(数字的值返回)
- 架构设计的UML图形思考
- POJ 3580 SuperMemo Splay/可持久化Treap 维护区间
- POJ 3630 Phone List Trie题解
- python学习之html从0开始(二)
- 扑克牌排列
- 简单类型的数据查询
- 删除数据纯代码演示
- python 安装ggplot包
- JAVA蓝桥杯(6)括号问题
- python中变量类型
- hi3518E下载ram debug碰到ramdisk过小的问题