当前位置: 首页 > 知识库问答 >
问题:

将3D数组传递到Android中的活动

洪涵亮
2023-03-14

我正在尝试将3D-dulearray传递给另一个活动。我不知道为什么我得到NullpointerException?缺少什么?

主要活动

 Intent intent = new Intent(this, DataActivity.class);
 Bundle mBundle = new Bundle();
 mBundle.putSerializable("list", output_data);
 intent.putExtras(mBundle);
 startActivity(intent);

数据活动(reveiver)

 Intent intent = new Intent();
 double[][][] params = (double[][][]) intent.getExtras().getSerializable("list");

而且我可以肯定的是,3d阵列已经在MainActivity中分配了。我已经测试过了!

如果有人对此有任何解决方案,并且可以回答为什么我得到NullPointerException,那将是很高兴的。

(编辑:NullpointerException at the line double[][][] params = ...)

共有2个答案

酆晔
2023-03-14

也许你需要一个实现serializable的类?

使用Serializable通过意图传递数据

在此示例中,他们使用自定义类和 List

林运浩
2023-03-14

我很确定双[][][]没有实现Serializable。您可以这样做:

public class MyArrayWrapper implements Serializable {

  private double[][][] arr;

  public MyArrayWrapper(double[][][] value) {
    arr = value;
  }

  public double[][][] getArray() {
    return arr;
  }
}

然后实例化包装器类,并将其作为可序列化类。然后,当获取可序列化时,您可以这样做:

MyArrayWrapper wrap = (MyArrayWrapper) intent.getExtras().getSerializable("list");
double[][]][] myArray = wrap.getArray();

希望这有帮助!

 类似资料: