android - 如何在 Android 上将 Enum 读写到 parcel 中?

标签 android enums parcelable parcel

这是我的模型类:

public enum Action {
    RETRY, SETTINGS
}

private int imageId;
private String description;
private String actionName;
private Action action;

public NetworkError(int imageId, String description, String actionName, Action action ) {
    this.imageId = imageId;
    this.description = description;
    this.actionName = actionName;
    this.action = action;
}

public int getImageId() {
    return imageId;
}

public void setImageId(int imageId) {
    this.imageId = imageId;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public String getActionName() {
    return actionName;
}

public void setActionName(String actionName) {
    this.actionName = actionName;
}


@Override
public int describeContents() {
    return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeInt(this.imageId);
    dest.writeString(this.description);
    dest.writeString(this.actionName);
}

protected NetworkError(Parcel in) {
    this.imageId = in.readInt();
    this.description = in.readString();
    this.actionName = in.readString();
}

public static final Parcelable.Creator<NetworkError> CREATOR = new Parcelable.Creator<NetworkError>() {
    @Override
    public NetworkError createFromParcel(Parcel source) {
        return new NetworkError(source);
    }

    @Override
    public NetworkError[] newArray(int size) {
        return new NetworkError[size];
    }
};

最佳答案

我有类似的问题,我的解决方案是:

parcel.writeString(this.questionType.name());

阅读:

this.questionType = QuestionType.valueOf(parcel.readString());

QuestionType 是枚举,记住元素的顺序很重要。

关于android - 如何在 Android 上将 Enum 读写到 parcel 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38174961/

相关文章:

android - 如何防止 Android 在 Activity (应用程序)处于焦点时自动锁定?

enum bool 的冲突类型?

Swift 枚举作为数组索引

java - 不在 Activity 之间传递的 Parcelable 数据

Android,无法解析方法 getMap()

android - 我如何在 Android Studio 的预览中看到长布局

android - 如何对 android.graphics.Bitmap 和 BitmapFactory 进行单元测试?

enums - 是否可以在 kotlin 中使用 enum ordinal 而不显式调用 ordinal?

Android:将接口(interface)放入 Intent

java - 如何使用 Parcelable 发送多维数组?