当我在Parcel创建对象时尝试回读String[]
时,我收到NullPointerException。这是我的代码:
@Override
public void writeToParcel(Parcel out, int flags) {
out.writeInt(floors);
out.writeStringArray(indoorMaps);
}
public static final Parcelable.Creator<Building> CREATOR
= new Parcelable.Creator<Building>() {
public Building createFromParcel(Parcel in) {
return new Building(in);
}
public Building[] newArray(int size) {
return new Building[size];
}
};
private Building(Parcel in) {
floors = in.readInt();
in.readStringArray(indoorMaps);
}
所以indoorMaps是我班级的一个属性,它是一个String[]
,但是我得到了NullPointerException。我检查了dev's documentation,但那里什么都没有。
我跟着this tutorial,他们正在那里使用readStringArray
。
有什么建议吗?感谢
答案 0 :(得分:12)
在致电Parcel
时,您正在给null
一个readStringArray
数组。要使其正常工作,您必须初始化indoorMaps
。您可能需要createStringArray
。