0

我试图捆绑一个数组数组但不工作。下面是一段代码,以便更好地理解:

声明和初始化变量

Inversor[][] reg_equipment= new Inversor[7][5];
for(int i=0; i<7; i++)
{
  for(int j=0;j<5;j++)
  {
    reg_equipment[i][j]= new Inversor();
  }
}
//....

将变量放入包中

bundle.putSerializable("reg_equipment", reg_equipment);

Intent myIntent =new  Intent(RegisterEquipmentInversor.this,RegisterEquipmentMain.class);
                myIntent.putExtras(bundle);

                startActivity(myIntent);

此时, reg_equipment 充满了 Inversor [Inversor[0],Inversor[1]....,Inversor[6]]并且在这些里面有更多的 Inversor

但是当我去“得到”另一个班级的捆绑包时

reg_equipment = (Inversor[][]) extras.getSerializable("reg_equipment");

这是 de reg_equipment 内部的内容 - [Object[0],Object[1],...,[Object[6]]并且在这些对象内部有 Inversors。为什么会发生这种情况?我该如何解决?

Inversor 类实现了 Serializable

谢谢

4

2 回答 2

3

您应该尝试创建一个只有一个属性的 Serializable 类,它应该是您的 Inversor 数组数组,并将该对象放入您的意图中。就像是

public class InversorArrays implements Serializable {
    public final static int serialVersionUID = //let eclipse generate your uid
    public Inversor[][] myArray = null;
    public InversorArrays (Inversor[][] _myArray){
        this.myArray = _myArray;
    }
}

然后,在您的活动中,创建 InversorArrays 的实例并将其传递给意图

当然,Inversor 及其属性也应该是可序列化的。

这种解决方法有时为我节省了很多时间,并解决了类型转换和转换问题

于 2012-05-24T13:30:44.920 回答
0

我不确定,但是您是否使投资者类可序列化?我认为,如果我们能够对投资者阶层有一个基本的了解,那可能会带来一些启示。

我会说从让 Investor 可序列化开始。http://www.tutorialspoint.com/java/java_serialization.htm

于 2012-05-24T13:30:40.233 回答