1

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

我在class1中有一个数组

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

---这里填充数组的代码---在类的末尾我想将 tableCityPair 发送到另一个类class2

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

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

2 回答 2

1

该类Bundle具有传递和检索 s 数组的方法double

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

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

在接收端,您可以:

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

不过,我不确定这对性能的影响;因为您将添加 100 个附加功能作为捆绑包的一部分。

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

于 2012-05-29T03:58:51.963 回答
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][]);

}

然后在 B 类

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

}
于 2012-05-29T03:43:34.890 回答