Parcelable序列化接口示例

原创 2016年05月30日 14:00:45

package com.daima.bean;



import android.os.Parcel;
import android.os.Parcelable;


public class UserInfo implements Parcelable {
private String userCode;
private String userName;
private String token;
private boolean canLogin;
private String errInfo;
private String userId;


public UserInfo() {


}


public UserInfo(Parcel in) {
readFromParcel(in);
}


private void readFromParcel(Parcel in) {
// TODO Auto-generated method stub
userCode = in.readString();
userName = in.readString();
token = in.readString();
canLogin = (in.readInt() == 0) ? true : false;
errInfo = in.readString();
userId = in.readString();
}


@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}


@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(userCode);
dest.writeString(userName);
dest.writeString(token);
dest.writeInt(canLogin ? 0 : 1);
dest.writeString(errInfo);
dest.writeString(userId);
}


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


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


public String getUserId() {
return userId;
}


public void setUserId(String userId) {
this.userId = userId;
}


public String getErrInfo() {
return errInfo;
}


public void setErrInfo(String errInfo) {
this.errInfo = errInfo;
}


public String getUserCode() {
return userCode;
}


public void setUserCode(String userCode) {
this.userCode = userCode;
}


public String getUserName() {
return userName;
}


public void setUserName(String userName) {
this.userName = userName;
}


public String getToken() {
return token;
}


public void setToken(String token) {
this.token = token;
}


public boolean isCanLogin() {
return canLogin;
}


public void setCanLogin(boolean canLogin) {
this.canLogin = canLogin;
}


}


需要注意的是:

private void readFromParcel(Parcel in) {
// TODO Auto-generated method stub
userCode = in.readString();
userName = in.readString();
token = in.readString();
canLogin = (in.readInt() == 0) ? true : false;
errInfo = in.readString();
userId = in.readString();
}

@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(userCode);
dest.writeString(userName);
dest.writeString(token);
dest.writeInt(canLogin ? 0 : 1);
dest.writeString(errInfo);
dest.writeString(userId);
}

这俩块读写字段的顺序要一致。


相关文章推荐

Parcelable序列化示例

首先定义字段,我这里定义成这样 // 消息ID protected int msgId; // 消息内容 protected String msgContent; // 消息用户名 pr...
  • yhq1913
  • yhq1913
  • 2016年05月27日 14:32
  • 203

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

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

安卓生成序列化Parcelable接口代码小程序

谷歌在安卓上提供了一个序列化接口——Parcelable,它表示比java传统的序列化接口效率更高,然而现实是它不是自动化的,所以它的效果是很坑爹的——要重写很多代码。 于是在安卓studio上,大...

Android 序列化之 Parcelable 接口

一、什么是序列化当我们需要在 Intent 上或者在进程间传递一个对象的时候,当我们需要将对象持久化,例如将对象保存到存储设备或者通过网络传递到其他设备的时候,我们就需要将这个对象序列化。二、Parc...

Android 实现Parcelable接口序列化对象

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

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

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

[Android] Parcelable接口实现序列化

在实际的使用中,我们经常需要在不同的进程中传递对象实例,但是却不能直接的传递对象,因而需要通过对象的序列化和反序列化来实现对对象的传递。序列化之后标志着我们可以直接传递对象了。下面我们讲实现通过一个例...

自动化快速实现Parcelable接口序列化

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

安卓实现序列化之Parcelable接口

安卓实现序列化之Parcelable接口 1.实现序列化的方法:        Android中实现序列化有两个选择:一是实现Serializable接口(是JavaSE本身就支持的) ,一是实...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Parcelable序列化接口示例
举报原因:
原因补充:

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