Android - 包裹:无法整理价值
Android - Parcel: unable to marshal value
我正在尝试使用 Parcelable 通过活动传递数据。这是我的代码:
public class Player implements Parcelable {
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];
}
};
private String name;
private List<Card> listCards;
public Player(String namePlayer) {
name = namePlayer;
listCards = new ArrayList<>();
}
private Player(Parcel in) {
// This order must match the order in writeToParcel()
name = in.readString();
in.readList(listCards, null);
// Continue doing this for the rest of your member data
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeList(listCards);
}
每当我 运行 此代码时,我都会收到错误消息:
java.lang.RuntimeException: Parcel: unable to marshal value com.antoinedelia.lebarbu_versionalcool.Card@ec54bb
您知道问题出在哪里吗?
谢谢
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeList(listCards);
}
因为 Card
class 没有实现 Parcelable
你不能做 writeList/readList
。它仅适用于 Parcelable
个对象的列表。
我正在尝试使用 Parcelable 通过活动传递数据。这是我的代码:
public class Player implements Parcelable {
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];
}
};
private String name;
private List<Card> listCards;
public Player(String namePlayer) {
name = namePlayer;
listCards = new ArrayList<>();
}
private Player(Parcel in) {
// This order must match the order in writeToParcel()
name = in.readString();
in.readList(listCards, null);
// Continue doing this for the rest of your member data
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeList(listCards);
}
每当我 运行 此代码时,我都会收到错误消息:
java.lang.RuntimeException: Parcel: unable to marshal value com.antoinedelia.lebarbu_versionalcool.Card@ec54bb
您知道问题出在哪里吗?
谢谢
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeList(listCards);
}
因为 Card
class 没有实现 Parcelable
你不能做 writeList/readList
。它仅适用于 Parcelable
个对象的列表。