可包裹 android
Parcelable android
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];
}
};
}
锁由用户拥有(有自己的模型),因此它具有用户类型的属性所有者。我的主要问题是将用户对象写入包裹。有没有办法将自定义类型写入包裹。
Is there a way of writing custom types into a parcel.
是的。您的 User
class 必须实现 Parcelable
然后在您的 writeToParcel
方法中您可以使用 parcel.writeParcelable(user, i)
Parcel
也可以与 classes 一起使用 parcel.writeSerializable
实现 Serializable
。这对您来说需要的工作要少得多,但是因为 Serializable
使用反射,它会带来性能损失。
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];
}
};
}
锁由用户拥有(有自己的模型),因此它具有用户类型的属性所有者。我的主要问题是将用户对象写入包裹。有没有办法将自定义类型写入包裹。
Is there a way of writing custom types into a parcel.
是的。您的 User
class 必须实现 Parcelable
然后在您的 writeToParcel
方法中您可以使用 parcel.writeParcelable(user, i)
Parcel
也可以与 classes 一起使用 parcel.writeSerializable
实现 Serializable
。这对您来说需要的工作要少得多,但是因为 Serializable
使用反射,它会带来性能损失。