1
我正在使用Android应用程序并尝试在屏幕旋转时保存数据。我有一个名为mCheatedResults的数组中有这个数据。这是一对配对布尔数据和一个int的自定义对象。我为自定义对象创建类的代码是这样的:如何使用savedInstanceStateBundle包含Parcelable对象数组
private class Pair implements Parcelable{
private int mIndex;
private boolean mCheated;
public Pair(int mIndex, boolean mCheated){
this.mIndex=mIndex;
this.mCheated=mCheated;
}
public Pair(Parcel in){
mIndex= in.readInt();
mCheated=in.readByte()!=0;
}
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel out, int flags){
out.writeInt(mIndex);
out.writeByte((byte)(mCheated ? 1:0));
}
public final Parcelable.Creator<Pair> CREATOR = new Parcelable.Creator<Pair>(){
public Pair createFromParcel(Parcel in){
return new Pair(in);
}
public Pair[] newArray(int size) {
return new Pair[size];
}
};
public int getIndex(){
return mIndex;
}
public boolean didCheat(){
return mCheated;
}
public void setBoolean(boolean mCheated) {
this.mCheated = mCheated;
}
}
我试图用它来对对象的数组附加到包的代码如下:
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
Log.i(TAG, "onSaveInstanceState");
savedInstanceState.putInt(KEY_INDEX, mCurrentIndex);
savedInstanceState.putParcelableArray(QUESTIONS_CHEATED, mCheatedResults);
}
我发现文件表明这会起作用,但似乎并不奏效。有什么建议么?
您是否遇到编译错误,运行时异常或值未保存?什么是确切的问题? – Abdullah
运行时或编译时没有错误。然而,该应用程序的行为不像数值已保存。 –