Intent传递值对象的两种方式:Serializable和Parcelable
来源:互联网 发布:现在开淘宝店晚不晚 编辑:程序博客网 时间:2024/05/16 15:06
首先什么是值对象:自定义的,有数据类型的对象!
用Intent传递我们自定义的数据类型对象时,只能有两种方式,第一种就是Serializable,这种是Java语音内置的用于序列化数据类型的一个接口!这种方式很方便,直接放自定义的数据类继承它就可以了!
第二中是Parcelable,这种是Andorid平台自己的序列化数据的一个接口!这种方式的使用就相对复杂一点,首先继承这个接口,这时候要复习两个方法,分别是:
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
}
第一个方法,我们默认不动就可以了,在第二个方法中要将我们数据类型的元素放进,类如:
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeBundle(new Bundle());
dest.writeString(getUnit());
dest.writeInt(getIndex());
}
做完这些之后,还要重写一个方法:T 代表你自己定位的数据类
public static final Creator CREATOR = new Creator() {
@Override
public UnitData createFromParcel(Parcel in) {
return new UnitData(in.readString(), in.readInt());
}
@Override
public UnitData[] newArray(int size) {
return new UnitData[size];
}
};
如果你用的是AS的话,会智能的提示你添加次方法,如果是eclipse的话好像只能自己动手写了,也挺麻烦的!
这两个方法第二个直接返回size就可以了,第一个方法需要返回你的数据类型,按照上面的写法就可以了!
下面是全部的代码:
public class UnitData implements Parcelable {
private String unit;
private int index;
public UnitData(String unit, int index) {
this.unit = unit;
this.index = index;
}
public static final Creator CREATOR = new Creator() {
@Override
public UnitData createFromParcel(Parcel in) {
return new UnitData(in.readString(), in.readInt());
}
@Override
public UnitData[] newArray(int size) {
return new UnitData[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(getUnit());
dest.writeInt(getIndex());
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
}
- Intent传递值对象的两种方式:Serializable和Parcelable
- Intent传递对象的两种方法Serializable 和 Parcelable
- Android中Intent传递对象的两种方法------Serializable传值和Parcelable传值
- Intent传递对象的两种方法(Serializable,Parcelable)
- Intent传递对象的两种方法(Serializable,Parcelable)
- Intent传递对象的两种方法(Serializable,Parcelable)
- Serializable 和 Parcelable两种方式传递对象
- Android Accessibility && Parcel和AIDL && Intent传递对象的两种方法(Serializable,Parcelable)
- Intent传递对象(两种序列化方式Serializable/Parcelable)
- 对象序列化的两种方式 Serializable和Parcelable
- Android对象序列化(二)-----Intent传递对象的两种方法(Serializable,Parcelable)
- Intent 传递基本类型的数据的两种方式(不是Serializable,Parcelable)
- Android中Intent传递对象的两种方法(Serializable,Parcelable)
- Android中Intent传递对象的两种方法(Serializable,Parcelable
- Android中Intent传递对象的两种方法(Serializable,Parcelable
- Android中Intent传递对象的两种方法(Serializable,Parcelable)
- Android高手进阶教程(十六)---Android中Intent传递对象的两种方法(Serializable,Parcelable)!
- Android中Intent传递对象的两种方法(Serializable,Parcelable)!
- Nim 游戏及其变形
- MySQL分页
- 点聚weboffice插件自定义菜单
- localStorage的理解和应用
- Storm消息可靠性的保障机制
- Intent传递值对象的两种方式:Serializable和Parcelable
- Mysql学习(十一)
- 学习笔记
- [POJ3710]Christmas Game(博弈树的删边游戏)
- String 的一些问题
- 类动态规划求解较小规模的最大团问题(Python实现)
- 算法 拉丁矩阵问题
- IE,FF中js日期字符串解析问题
- 2878: [Noi2012]迷失游乐园