很详细的android序列化过程Parcelable
直接上代码:注释都写的很清楚了。
publicclassEntryimplementsParcelable{
publicintuserID;
publicStringusername;
publicbooleanisMale;
publicBookbook;//序列化对象可以嵌套序列化对象,前提是2个类的对象都被序列号过
//几乎所有情况下都返回0,可以不管
@Override
publicintdescribeContents(){
return0;
}
//序列化对象,将对象写到序列号数据结构中
//flags:大多数情况为0
@Override
publicvoidwriteToParcel(Parcelout,intflags){
out.writeInt(userID);
out.writeString(username);
out.writeInt(isMale?1:0);
out.writeParcelable(book,0);
//out.writeList(list);也可以序列号list和Map,前提是list和Map里面的数据都是可序列号的
//out.writeMap(Map);
}
publicEntry(intuserID,Stringusername,booleanisMale){
this.userID=userID;
this.username=username;
this.isMale=isMale;
}
//反序列化
publicstaticfinalParcelable.Creator<Entry>CREATOR=newCreator<Entry>(){
//创建指定长度的原始对象数组
@Override
publicEntry[]newArray(intsize){
//TODOAuto-generatedmethodstub
returnnewEntry[size];
}
//从序列号过后的对象中创建原始对象
@Override
publicEntrycreateFromParcel(Parcelsource){
//TODOAuto-generatedmethodstub
returnnewEntry(source);
}
};
//从序列号后的对象中创建原始对象
privateEntry(Parcelin){
userID=in.readInt();
username=in.readString();
isMale=in.readInt()==1;
in.readParcelable(Thread.currentThread().getContextClassLoader());
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西