我对Android应用程序中的意图有疑问
我在 class1
中有一个数组double [][] tableCityPair = new double[100][100];
---这里代码填充数组--- 在课程结束时,我想将tableCityPair发送到另一个类 class2 。
我应该如何在class2中声明数组?
这是对的吗?
Intent it = getIntent();
double tabelJarakAntarKota= it.getDoubleExtra("tableCityPair",3);
答案 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);
}