java parcelable list_Parcelable序列化处理
的带有集合带有bigdecimal的处理
定义一个商品信息类,其中包含bigdecimal、string
1.实现parcelable
2.重写describeContents 和writeToParcel的方法
describeContents 的方法默认处理即可为0,
writeToParcel是序列化处理,将数据写入到Parcel对象中,通过Parcel 对象将所有属性进行处理,若是bigdecimal则将写入string字符串
3.实例化静态内部对象CREATOR,其中createFromParcel是反序列化的处理,将writeToParcel方法序列化的数据进行反序列化。
注意:
writeToParcel中和createFromParcel中即调用的protected GoodInfoModel(Parcel in) 中的处理参数的顺序必须相同
上面这些就是序列化的基本流程,对于Android studio 中类实现Parcelable后重写方法,则自动会生成上述处理。
以下重点标出了bigdecimal的处理
public class GoodInfoModel implements Parcelable {
private BigDecimal total;
private BigDecimal weight;
private String goodsno;
private String barcode;
private BigDecimal qty;
protected GoodInfoModel(Parcel in) {
total = new BigDecimal(in.readString());
weight = new BigDecimal(in.readString());
goodsno = in.readString();
barcode = in.readString();
qty = new BigDecimal(in.readString());
}
public static final Creator CREATOR = new Creator() {
@Override
public GoodInfoModel createFromParcel(Parcel in) {
return new GoodInfoModel(in);
}
@Override
public GoodInfoModel[] newArray(int size) {
return new GoodInfoModel[size];
}
};
public BigDecimal getTotal() {
return total;
}
public void setTotal(BigDecimal total) {
this.total = total;
}
public BigDecimal getWeight() {
return weight;
}
public void setWeight(BigDecimal weight) {
this.weight = weight;
}
public String getGoodsno() {
return goodsno;
}
public void setGoodsno(String goodsno) {
this.goodsno = goodsno;
}
public String getBarcode() {
return barcode;
}
public void setBarcode(String barcode) {
this.barcode = barcode;
}
public BigDecimal getQty() {
return qty;
}
public void setQty(BigDecimal qty) {
this.qty = qty;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(getUnNullString(total + "", "0"));
dest.writeString(getUnNullString(weight + "", "0"));
dest.writeString(goodsno);
dest.writeString(barcode);
dest.writeString(getUnNullString(qty + "", "0"));
}
// 为空判断
private String getUnNullString(String s, String defaultData) {
return (s == null || TextUtils.isEmpty(s) || "null".equals(s)) ? defaultData
: s;
}
}
订单类:
public class OrderInfo implements Parcelable {
private List goodInfoModels;
private BigDecimal total;
private int count;
private String flow_no;
public OrderInfo(Parcel in) {
goodInfoModels = in.createTypedArrayList(GoodInfoModel.CREATOR);
total = new BigDecimal(in.readString());
count = in.readInt();
flow_no = in.readString();
}
public static final Creator CREATOR = new Creator() {
@Override
public OrderInfo createFromParcel(Parcel in) {
return new OrderInfo(in);
}
@Override
public OrderInfo[] newArray(int size) {
return new OrderInfo[size];
}
};
public OrderInfo() {
}
// 为空判断
private String getUnNullString(String s, String defaultData) {
return (s == null || TextUtils.isEmpty(s) || "null".equals(s)) ? defaultData
: s;
}
public List getGoodInfoModels() {
return goodInfoModels;
}
public void setGoodInfoModels(List goodInfoModels) {
this.goodInfoModels = goodInfoModels;
}
public BigDecimal getTotal() {
return total;
}
public String getFlow_no() {
return flow_no;
}
public void setFlow_no(String flow_no) {
this.flow_no = flow_no;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeTypedList(goodInfoModels);
dest.writeString(getUnNullString(total + "", ""));
dest.writeInt(count);
dest.writeString(flow_no);
}
本文地址:https://blog.csdn.net/jiuweitianhu_12345/article/details/112240365
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
java parcelable list_Parcelable序列化处理相关推荐
- java parcelable list_parcelable在哪个java包中?
给你一个案例看看他的导入哪里62616964757a686964616fe58685e5aeb931333365656538的 import android.os.Parcel; import and ...
- java parcelable list_Android中Serializable和Parcelable序列化对象详解
学习内容: 1.序列化的目的 2.Android中序列化的两种方式 3.Parcelable与Serializable的性能比较 4.Android中如何使用Parcelable进行序列化操作 5.P ...
- Java对象XML序列化框架-Simple2.0
Java对象XML序列化框架-Simple2.0 Simple是一个XML序列化框架,一个Java 版本宽容的序列化框架,能够快速在Java 平台上开发XML.支持通过annotations完全配置化 ...
- java 对象怎么序列化,java对象序列化总结
java对象序列化小结 百度百科上介绍序列化是这样的: 序列化 (Serialization): 将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储 ...
- fileinputstream自定义类序列化和反序列化_Rest Assured篇:Java中的序列化和反序列化...
点击上方蓝字设为星标 每天傍晚伴你一起成长! Java 中的序列化和反序列化是一个重要的编程概念.它适用于所有主要的编程语言.在本章中,我们将尝试在Java语言的上下文中理解此概念.在本章的最后,我们 ...
- Java对象的序列化与反序列化
序列化与反序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.一般将一个对象存储至一个储存媒介,例如文件或是内存缓冲区等.在网络传输过程中,可以是字节或是 ...
- java字段不序列化注解_@Transient注解的使用(不被序列化和作为临时变量存储)...
java 的transient关键字的作用是需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中. trans ...
- java 属性不序列化_怎样对带有不可序列化属性的Java对象进行序列化
原标题:怎样对带有不可序列化属性的Java对象进行序列化 出于很多原因我们想使用自定义的序列化方法取代Java默认的机制.一个最常见的原因是提高性能,而另一个原因是有时候我们无法使用默认的序列化方法. ...
- java 四字节uid,Java入门教程-序列化版本号serialVersionUID的作用
原标题:Java入门教程-序列化版本号serialVersionUID的作用 Java序列化是将一个对象编码成一个字节流,反序列化将字节流编码转换成一个对象.序列化是Java中实现持久化存储的一种方法 ...
最新文章
- Tensorrt一些优化技术介绍
- 普通域账号客户端计算无关机选项
- 第 3 章 镜像 - 010 - base 镜像
- 【NLP】如何系统性的学习NLP,有三AI-NLP知识星球等你来
- mogodb 的自定义函数定义及引用
- C#LeetCode刷题之#744-寻找比目标字母大的最小字母(Find Smallest Letter Greater Than Target)
- matlab练习程序(图像序列合成视频)
- Android Sensor架构和原理分析
- HDU-2686 Matrix 多进程DP
- 计算机科学与技术毕业论文题目【115个】
- 分享一些第三方免费接口集
- 【渗透测试笔记】之【免杀工具——使用Invoke-Obfuscation代码混淆免杀powershell】
- 电子合同的风险有哪些?小心别被坑了
- 明日之后 服务器维护,明日之后服务器爆满炸服 排队等待进不去什么梗
- 基于单片机的秒表计时器系统设计(#0400)
- 英特尔换帅!首任CTO重返上任,网友:王者归来,虽然我是AMD的粉丝
- 生日快乐网站模板(个人制作)(HTML5+CSS3+JS)
- 基于Matlab/simulink的风光储微电网一体化协调系统
- JAVA进阶案例 TCP编程之网络聊天工具(客户端)
- linux高分屏输入法缩放,Kubuntu 高分屏缩放