Parcelable序列化实现方法

Parcelable和Serializable都能进行序列化   但Serializable消耗内存较高  有时使用Parcelable会更好

现在我的实现如下:

、我的字段:( 加入无参构造方法为了json解析调用,并且生成了get/set方法

	// 标题
	private String promotionTitle;
	// 介绍
	private String promotionContent;
	// 代号
	private String promotionCode;
	// 图片链接
	private String promotionPhoto;
        //无参构造方法
	public Concessions() {
	}

二、(区别在这里Serializable直接实现接口就可以了)

      Parcelable实现接口需要重写方法 describeContents()和 writeToParcel(Parcel dest, int flags)

蓝色标记处CREATOR 必须大写   

         如下代码:

@Override
	public void writeToParcel(Parcel dest, int flags) {
		dest.writeString(promotionTitle);
		dest.writeString(promotionContent);
		dest.writeString(promotionCode);
		dest.writeString(promotionPhoto);
	}

	public static final Parcelable.Creator<Concessions> CREATOR= new Parcelable.Creator<Concessions>() {
		public Concessions createFromParcel(Parcel in) {
			return new Concessions(in);
		}

		public Concessions[] newArray(int size) {
			return new Concessions[size];
		}
	};

	private Concessions(Parcel in) {
		promotionTitle = in.readString();
		promotionContent = in.readString();
		promotionCode = in.readString();
		promotionPhoto = in.readString();
	}
下面是序列化后完整类:

<pre name="code" class="java">public class Concessions implements Parcelable {
	// 标题
	private String promotionTitle;
	// 介绍
	private String promotionContent;
	// 代号
	private String promotionCode;
	// 图片链接
	private String promotionPhoto;

	// 无参构造
	public Concessions() {
	}

	@Override
	public int describeContents() {
		return 0;
	}

	@Override
	public void writeToParcel(Parcel dest, int flags) {
		dest.writeString(promotionTitle);
		dest.writeString(promotionContent);
		dest.writeString(promotionCode);
		dest.writeString(promotionPhoto);
	}

	public static final Parcelable.Creator<Concessions> CREATOR = new Parcelable.Creator<Concessions>() {
		public Concessions createFromParcel(Parcel in) {
			return new Concessions(in);
		}

		public Concessions[] newArray(int size) {
			return new Concessions[size];
		}
	};

	private Concessions(Parcel in) {

		promotionTitle = in.readString();
		promotionContent = in.readString();
		promotionCode = in.readString();
		promotionPhoto = in.readString();
	}
     //get/set省略
   }

 


总结: 这是我实现功能后 没有问题才发表的,已经写得很详细了  如果你还是没看明白 直接复制替换字段吧,  祝你好运!!!!!!!!  







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值