【发布时间】:2014-07-06 21:06:23
【问题描述】:
您好,我正在尝试在 onSaveInstanceState 方法内的 Bundle 中保存自定义对象的二维数组,以便在用户旋转屏幕时保存自定义对象数组 但我不知道如何实现它。如果可能的话,就像一个“简单”的解决方案......谢谢
这是自定义对象的类,我尝试添加实现 Parcelable & 方法但不确定该部分是否正确:
package com.example.game
import android.os.Parcel;
import android.os.Parcelable;
//hacemos el implements parcelable para que se puede guardar en el savedinstance
public class NumeroCarton implements Parcelable {
protected int numero;
protected boolean numacertado;
public NumeroCarton(int numero) {
this.numacertado =false;
this.numero = numero;
}
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
public boolean isNumacertado() {
return numacertado;
}
public void setNumacertado(boolean numacertado) {
this.numacertado = numacertado;
}
////parcelable :
private NumeroCarton(Parcel in) {
numero = in.readInt();
}
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
out.writeInt(numero);
}
public static final Parcelable.Creator<NumeroCarton> CREATOR
= new Parcelable.Creator<NumeroCarton>() {
public NumeroCarton createFromParcel(Parcel in) {
return new NumeroCarton(in);
}
public NumeroCarton[] newArray(int size) {
return new NumeroCarton[size];
}
};
}
好的,在我想要保存的对象的活动内部,它的 micarton,一个 2d 数组 我上面写的那门课:
NumeroCarton[][] micarton=new NumeroCarton[5][3];
我想将它保存在 onSaveInstanceState 方法的包中:
public void onSaveInstanceState(Bundle outInstance) {
super.onSaveInstanceState(outInstance);
outInstance.putInt(STATE_PUNTOS, puntos);
//This is my problem:
outInstance.putParcelable(STATE_MICARTONN, micarton);
//The method putParcelable(String, Parcelable)
// in the type Bundle is not //applicable for the arguments
//(String, NumeroCarton[][])
//Neither outInstance.putParcelableArray[](STATE_MICARTONN, micarton)
}
【问题讨论】:
标签: android arrays bundle parcelable