我有一个关于在Android应用程序意图的问题
我有Class1中的阵列
double [][] tableCityPair = new double[100][100];
---这里的代码填写阵列---在课堂结束时,我想送tableCityPair到另一个阶级, 等级2。
怎么我应该声明为Class2中数组?
这是正确的吗?
Intent it = getIntent();
double tabelJarakAntarKota= it.getDoubleExtra("tableCityPair",3);
该Bundle
类具有用于传递和检索的阵列的方法double
S:
-
void putDoubleArray(String, double[])
-
double [] getDoubleArray(String)
但是,这些工作对于一维数组。 您正在试图通过一个二维数组。 我不知道一个直接的方式来做到这一点。 实现这一目标的一个方法是把双打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
),但我还没有尝试过任何的,所以我不会建议它。
double [][] tableCityPair = new double[100][100];
然后......让意图IT = ....然后
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);
}