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
実行時またはコンパイル時にエラーはありません。しかし、値が保存されているかのようにアプリケーションは動作しません。 –