public class Account implements Parcelable {
private String account;//账号
private String name;//用户名
private String icon;//用户头像
private int sex;//性别 0:未设置 1:女 2:男 3:其他
private String sign;//个性签名
private String area;//用户所在区域
private String token;//用户与服务器交互的唯一标
private boolean current;//是否是当前用户
//...get和set方法,省略
@Override
public int describeContents() {
return 0;
}
//序列化,Parcel内部包装了可序列化的数据,可以在Binder中自由传输
@Override
public void writeToParcel(Parcel parcel, int i) {
Bundle val = new Bundle();
val.putString("account", account);
val.putString("name", name);
val.putString("icon", icon);
val.putString("sign", sign);
val.putString("area", area);
val.putString("token", token);
val.putInt("sex", sex);
val.putBoolean("current", current);
parcel.writeBundle(val);
}
//反序列化,内部标明了结创建序列化对象和数组
public static final Parcelable.Creator<Account> CREATOR = new Creator<Account>() {
@Override
public Account createFromParcel(Parcel parcel) {
return new Account(parcel);
}
@Override
public Account[] newArray(int i) {
return new Account[i];
}
};
private Account(Parcel parcel) {
Bundle val = parcel.readBundle();
account = val.getString("account");
name = val.getString("name");
icon = val.getString("icon");
sign = val.getString("sign");
area = val.getString("area");
token = val.getString(" token");
sex = val.getInt("sex");
current = val.getBoolean("current");
}