关闭

Android Serializable Parcelable 序列化

113人阅读 评论(0) 收藏 举报
分类:

序列化后的对象可以作为一个整体进行传输,便于网络传输和存储。

1、Serializable 

public class Person implements Serializable{
	private String name;
	private int age;
	
	public void setName(String name){
		this.name = name;
	}
	
	public String getName(){
		return name;
	}
	
	public void setAge(int age){
		this.age = age;
	}
	
	public int getAge(){
		return age;
	}
}

传输数据:

Intent intent = new Intent(MainActivity.this,SecondActivity.class);
		Person person = new Person();
		person.setAge(10);
		person.setName("啦啦啦");
		intent.putExtra("person_data",person);
		
		startActivity(intent);
在SecondActivity中获取数据:

Person person = (Person)intent.getParcelableExtra("person_data");

2、Parcelable

public class Person2 implements Parcelable{
	private String name;
	private int age;
	
	public void setName(String name){
		this.name = name;
	}
	
	public String getName(){
		return name;
	}
	
	public void setAge(int age){
		this.age = age;
	}
	
	public int getAge(){
		return age;
	}
	@Override
	public int describeContents() {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public void writeToParcel(Parcel dest, int flags) {
		// TODO Auto-generated method stub
		dest.writeString(name);<span style="white-space:pre">		</span>//将数据写到pacel
		dest.writeInt(age);
	}
	
	public static final Parcelable.Creator<Person2> CREATOR  = new Parcelable.Creator<Person2>() {

		@Override
		public Person2 createFromParcel(Parcel source) {<span style="white-space:pre">	</span>//将数据从pacel中读取
			// TODO Auto-generated method stub
			Person2 person = new Person2();
			person.name = source.readString();
			person.age = source.readInt();
			return person;
		}

		@Override
		public Person2[] newArray(int size) {
			// TODO Auto-generated method stub
			Person2[] person = new Person2[size];
			return person;
		}
	};

}

传输数据:
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
		Person person2 = new Person2();
		person2.setAge(10);
		person2.setName("啦啦啦");
		intent.putExtra("person_data",person);
		
		startActivity(intent);

在SecondActivity中获取数据:

Person person2 = (Person2)intent.getParcelableExtra("person_data");



0
0
查看评论

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

Android中实现序列化有两种方式,一种是使用Serializable另一种就是Parcelable了。 Serializable本身就是JavaSE支持的,Parcelable是Android特有的,效率比Serializable高,据统计一般情况下能快10倍左右!但是Parcelable不能...
  • L664675249
  • L664675249
  • 2015-10-25 14:12
  • 6620

序列化与反序列化之Parcelable和Serializable浅析

转载请注明出处(万分感谢!): http://blog.csdn.net/javazejian/article/details/52665164 出自【zejian的博客】 本篇小部分内容摘自android开发艺术探索   在日常的应用开发中,我们可能需要让某些对象离开内存空间,...
  • javazejian
  • javazejian
  • 2016-09-26 15:50
  • 8495

Android开发中两种序列化Serializable 和 Parcelable

什么是序列化 我们总是说着或者听说着“序列化”,它的定义是什么呢? 序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。 ...
  • cishaohui
  • cishaohui
  • 2017-05-18 10:27
  • 300

Android Intent传递Parcelable和Serializable对象原理分析

Android Intent传递Parcelable和Serializable对象原理分析  当我们需要打开一个Activity的时候,经常使用Intent去传递一些数据给将要打开的Activity。这些数据类型中经常会包含类类型,但是不能什么类都可以通过Intent传递的,必须是实现了Parcel...
  • u012341052
  • u012341052
  • 2017-03-30 11:40
  • 698

Android中两种序列化方式的比较Serializable和Parcelable

Serializable和Parcelable接口可以完成对象的序列化过程,当我们需要通过Intent和Binder传输数据时就需要使用者两种序列化方式。还有,我们需要对象持久化到存储设备或者通过网络传输给其他客户端,这个使用也需要使用Serializale来完成对象的序列化。在Android应用开...
  • wangchunlei123
  • wangchunlei123
  • 2016-05-08 13:33
  • 10858

Android进阶 - 1 - Parcelable和Serializable使用详解

如果我们需要通过Intent和Binder传输数据时就需要使用Parcelable或者Serializable对对象序列化。甚至有时候在把持久化的对象保存在存储设备上或者通过网络传输给其他客户端的时候,需要使用Serializable来完成对象的持久化。在实际开发过程中,习惯了使用序列化传输数据,但...
  • IO_Field
  • IO_Field
  • 2016-05-26 23:34
  • 3342

Android使用序列化接口Parcelable、Serializable

serializable: Parcelable: public class ListInfo implements Parcelable { String name; String time; int image; public ListInfo() { super(...
  • qq_30716173
  • qq_30716173
  • 2015-12-27 22:35
  • 1290

内部类不能序列化的原因

android 编写两个Activity class Data implements Serializable{ /** *  */ private static final long serialVersionUID = -6798751495700613794L; /** ...
  • Sheendn
  • Sheendn
  • 2014-10-11 09:46
  • 646

Android Serializable与Parcelable原理与区别

一、序列化、反序列化是什么? (1) 名词解释 对象的序列化 : 把Java对象转换为字节序列并存储至一个储存媒介的过程。 对象的反序列化:把字节序列恢复为Java对象的过程。 (2) 序列化详细解释 对象的序列化涉及三个点关键点:Java对象、字节序列、存储。 1. Java对象的组成? Jav...
  • love_world_
  • love_world_
  • 2014-03-26 07:25
  • 4561

Android 进阶6:两种序列化方式 Serializable 和 Parcelable

什么是序列化我们总是说着或者听说着“序列化”,它的定义是什么呢? 序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。 二进制序...
  • u011240877
  • u011240877
  • 2017-05-17 23:57
  • 3337
    个人资料
    • 访问:19866次
    • 积分:674
    • 等级:
    • 排名:千里之外
    • 原创:48篇
    • 转载:10篇
    • 译文:1篇
    • 评论:1条
    文章分类
    最新评论