Java的Android的传递数据数组双(Java Android passing data Arr

2019-10-16 18:49发布

我有一个关于在Android应用程序意图的问题

我有Class1中的阵列

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

---这里的代码填写阵列---在课堂结束时,我想送tableCityPair到另一个阶级, 等级2。

怎么我应该声明为Class2中数组?
这是正确的吗?

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

Answer 1:

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 ),但我还没有尝试过任何的,所以我不会建议它。



Answer 2:

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);

}


文章来源: Java Android passing data Array double