Parcel
Ich habe diese Player
Klasse lesen:Wie die Schreib implementieren und in Parcel Klasse
public class Player implements Parcelable {
private String mName; // Player's name
private Card mCard; // Player's current card
private boolean mLifeStatus = true; // Player's life status
private boolean mProtected = false; // If the Player's been protected by the guard or not
private int mId; // ID of the Player
private int mCount;
/* everything below here is for implementing Parcelable */
// 99.9% of the time you can just ignore this
@Override
public int describeContents() {
return 0;
}
// write your object's data to the passed-in Parcel
@Override
public void writeToParcel(Parcel out, int flags) {
out.writeString(mName);
out.writeValue(mCard);
out.writeValue(mLifeStatus);
out.writeValue(mProtected);
out.writeInt(mId);
out.writeInt(mCount);
}
// this is used to regenerate your object. All Parcelables must have a CREATOR that implements these two methods
public static final Parcelable.Creator<Player> CREATOR = new Parcelable.Creator<Player>() {
public Player createFromParcel(Parcel in) {
return new Player(in);
}
public Player[] newArray(int size) {
return new Player[size];
}
};
// example constructor that takes a Parcel and gives you an object populated with it's values
private Player(Parcel in) {
mName = in.readString();
mCard = in.readValue();
mLifeStatus = in.readValue(mLifeStatus);
mProtected = in.readValue(mProtected);
mId = in.readInt();
mCount = in.readInt();
}
}
Ich habe versucht zu füllen den letzten Konstruktor von mir, aber ich weiß nicht, wie um den Wert von booleans und von benutzerdefinierten Klassen zu lesen, genau wie meine Klasse Card
, die die Klasse für den mValue mCard
ist.
Ich habe versucht, diese zu verwenden, aber die Arbeit immer noch nicht: mCard = in.readValue(Card.class.getClassLoader);
Wie soll ich diese beiden Methoden schreiben, um die Klasse implementieren Parcelable
zu machen, wie es sein soll ist?
Hat '' Card' Parcelable' implementieren? Wenn nicht, muss es –