当Activity获取savedInstanceState时,包裹解组未知类型代码

时间:2018-04-03 03:40:06

标签: android android-layout android-studio android-fragments parcelable

我的问题是,当Activity运行到savedInstanceState时,会导致以下错误:

  

由java.lang.RuntimeException引起   包裹android.os.Parcel@2c89385:在偏移量132处解组未知类型代码7929970

在我的项目中,只有一个类实现了Parcelable来在片段之间传递数据。它包含一个用于存储数据的HashMap。

public class SimiData implements Parcelable {

public static final Creator<SimiData> CREATOR = new Creator<SimiData>() {
    @Override
    public SimiData createFromParcel(Parcel in) {
        return new SimiData(in);
    }

    @Override
    public SimiData[] newArray(int size) {
        return new SimiData[size];
    }
};
protected HashMap<String, Object> mData;

public SimiData(HashMap<String, Object> data) {
    mData = data;
}

protected SimiData(Parcel in) {
    try {
        mData = in.readHashMap(HashMap.class.getClassLoader());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

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

@Override
public void writeToParcel(Parcel dest, int flags) {
    try {

        if (null == mData) {
            return;
        }

        dest.writeValue(mData);
    } catch (Exception e) {
        Log.e("SimiData", "write exception " + e.getMessage());
    }
}

public HashMap<String, Object> getData() {
    return mData;
}

}

我猜是由Parcel的读/写值引起的问题。我尝试了很多方法,但没有任何方法可以帮助我。

有人可以给我一个方向吗?

0 个答案:

没有答案