您好我试图在方法onSaveInstanceState内的Bundle中保存自定义对象的二维数组,以便在用户旋转屏幕时保存自定义对象数组 但我不知道如何实现它..如果可能的id就像一个" easy"解决方案......谢谢
这是自定义对象的类,我试图添加工具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,一个二维数组 我在上面写的课程:
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)
}
答案 0 :(得分:0)
我认为如果你使自定义类可序列化它将起作用。
答案 1 :(得分:0)
还有另一个简单的解决方案,尝试将第二个数组转换为csv字符串,如下所示:
data11,data12,data13
data21,data22,data23
....
以这种格式,您可以轻松地将第二个数组转换为字符串并向后转换