Parcelable序列化实现方法

原创 2016年06月01日 19:24:02

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省略
   }



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







相关文章推荐

【Android 】序列化对象接口Parcelable使用方法

什么是Parcelable ?      Parcelable,定义了将数据写入Parcel,和从Parcel中读出的接口。一个实体(用类来表示),如果需要封装到消息中去,就必须实现这一接口,实...

Android 序列化对象接口Parcelable使用方法

什么是Parcelable ?      Parcelable,定义了将数据写入Parcel,和从Parcel中读出的接口。一个实体(用类来表示),如果需要封装到消息中去,就必须实现这一接口,实...
  • zpf8861
  • zpf8861
  • 2014年12月11日 09:29
  • 1696

android序列化(Parcelable)

  • 2017年02月15日 10:37
  • 25.42MB
  • 下载

Android中使用Parcelable实现对象的序列化

在Android开发中,Parcelable是一个接口,只要实现这个接口,一个类的对象就可以实现序列化并可通过Intent和Binder传递。序列化的目的是传递数据用。 下面给出一个实体类的序列化实例...

Android 实现Parcelable接口序列化对象

         关于对象序列化的方法,在Android中常用到的一般有两种,一种是可以通过实现Serializable接口,这也是java语言中常用的序列化方法,别外一种就是实现Parcela...

Android Studio酷炫插件——自动化快速实现Parcelable接口序列化

一、前言 相信数据序列化大家都多多少少有接触到,比如自定义了一个实体类,需要在activity之间传输该类对象,就需要将数据序列化。Android中实现方式有两种,第一、实现Serializab...

Android中使用Serializable和Parcelable实现序列化详解(含实例)

Android中实现序列化有两种方式,一种是使用Serializable另一种就是Parcelable了。 Serializable本身就是JavaSE支持的,Parcelable是Android特...

Android实现Parcelable对象序列化的实例

bundle.putParcelable可以实现传递对象,但是这个对象的类必须实现Parcelable接口才能够使用。 下面是一个简单的在Activity之间传递对象的例子。 parcel实现参数...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Parcelable序列化实现方法
举报原因:
原因补充:

(最多只允许输入30个字)