package com.iconasystems.android.models;
import android.os.Parcel;
import android.os.Parcelable;
import com.parse.ParseClassName;
import com.parse.ParseObject;
import java.util.UUID;
/**
* Created by Alex on 2/15/2016.
*/
@ParseClassName("Lock")
public class Lock extends ParseObject implements Parcelable {
private String simNumber;
private User owner;
private String authToken;
private String state;
private String id;
private String doorName;
public Lock() {
}
public Lock(Parcel parcel){
this.doorName = parcel.readString();
this.authToken = parcel.readString();
this.simNumber = parcel.readString();
this.state = parcel.readString();
this.id = parcel.readString();
}
// Some getters and setters
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(doorName);
parcel.writeString(authToken);
parcel.writeString(simNumber);
parcel.writeString(state);
parcel.writeString(id);
}
final Creator<Lock> CREATOR = new Creator<Lock>() {
@Override
public Lock createFromParcel(Parcel parcel) {
return new Lock(parcel);
}
@Override
public Lock[] newArray(int i) {
return new Lock[i];
}
};
}
Lock由User拥有(拥有自己的模型),因此它具有User类型的属性所有者。我的主要问题是将用户对象写入parcel。有没有办法将自定义类型写入包裹。
答案 0 :(得分:1)
有没有办法将自定义类型写入包裹。
是。您的User
课程必须实施Parcelable
,然后在writeToParcel
方法中使用parcel.writeParcelable(user, i)
Parcel
也可以使用Serializable
与实现parcel.writeSerializable
的类一起使用。这需要你的工作少得多,但因为Serializable
使用反射,它会带来性能损失。