Java Android传递数据数组的两倍

时间:2012-05-29 03:38:59

标签: android android-intent double

我对Android应用程序中的意图有疑问

我在 class1

中有一个数组
double [][] tableCityPair = new double[100][100];

---这里代码填充数组--- 在课程结束时,我想将tableCityPair发送到另一个类 class2

我应该如何在class2中声明数组?
这是对的吗?

Intent it = getIntent();
double tabelJarakAntarKota= it.getDoubleExtra("tableCityPair",3);

2 个答案:

答案 0 :(得分:1)

Bundle类包含传递和检索double s数组的方法:

但是,这些适用于一维数组。您正在尝试传递2D数组。我不知道直接这样做的方法。实现这一目标的一种方法是将N个双数组放入循环中。

for(int i=0;i<tableCityPair.length;i++){
    bundle.put("tableCity"+i, tableCityPair[i]);
}

在接收端,您可以:

double [] aPair = it.getExtras().getDoubleArray("tableCity"+i);

我不确定这对性能的影响;因为您将添加100个额外内容作为捆绑包的一部分。

可能有更好的方法(也许让你的对List<List<Double>>然后实现Parcelable)但是我没有尝试过任何一个,所以我不建议。

答案 1 :(得分:0)

double [][] tableCityPair = new double[100][100];

然后......    做意图= .... 然后

put: `it.putExtra("size",tableCityPair.length)`

然后:

    for(i=0;i<tableCitypair.length;i++)
{

it.putExtra("table"+i,tableVityPair[i][]);

}

然后在CLASS B中

double [][] tableCityPairinB = new double[100][100];
for(i=0;i<getIntent().getExtras("size");i++)
{
double[i][]=getIntent().getExtras("table"+i);

}