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中使用Serializable和Parcelable实现序列化详解(含实例)

Android中实现序列化有两种方式,一种是使用Serializable另一种就是Parcelable了。 Serializable本身就是JavaSE支持的,Parcelable是Android特...
  • L664675249
  • L664675249
  • 2015年10月25日 14:12
  • 6540

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

相信数据序列化大家都多多少少有接触到,比如自定义了一个实体类,需要在activity之间传输该类对象,就需要将数据序列化。android中实现方式有两种,第一、实现Serializable接口,这种比...
  • chequer_lkp
  • chequer_lkp
  • 2014年11月07日 23:21
  • 18618

Android Studio添加Parcelable序列化小工具(快速提高开发效率)

Android Studio怎样添加官方的小工具(Gson,Parcelable为例)         Android Studio是google专门为开发Android提供的开发工具,在它内部可以直...
  • oQiHaoGongYuan
  • oQiHaoGongYuan
  • 2016年03月15日 20:04
  • 4860

Android通过Parcelable和Serializable实现各种类型嵌套序列化

  • 2016年07月03日 18:58
  • 133KB
  • 下载

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

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

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

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

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

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

Android 实现Parcelable接口序列化对象

         关于对象序列化的方法,在Android中常用到的一般有两种,一种是可以通过实现Serializable接口,这也是java语言中常用的序列化方法,别外一种就是实现Parcela...
  • eastman520
  • eastman520
  • 2014年01月26日 14:15
  • 3574

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

bundle.putParcelable可以实现传递对象,但是这个对象的类必须实现Parcelable接口才能够使用。 下面是一个简单的在Activity之间传递对象的例子。 parcel实现参数...
  • DLUTBruceZhang
  • DLUTBruceZhang
  • 2013年05月08日 14:53
  • 3733

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

在Android开发中,Parcelable是一个接口,只要实现这个接口,一个类的对象就可以实现序列化并可通过Intent和Binder传递。序列化的目的是传递数据用。 下面给出一个实体类的序列化实例...
  • csdnzouqi
  • csdnzouqi
  • 2017年02月07日 15:27
  • 384
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Parcelable序列化实现方法
举报原因:
原因补充:

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