【问题标题】:How can i pass a Double[] array to another activity如何将 Double[] 数组传递给另一个活动
【发布时间】:2026-02-11 02:15:01
【问题描述】:

Bundle 对象不允许我传递 Double[] 数组,因为它需要一个 double[] 数组。我无法将 double[] 转换为 Double[],我不知道该怎么做。

请帮帮我。

【问题讨论】:

  • 请发帖SSCCE 帮助澄清您遇到的问题。
  • 为什么不手动创建 Double[] 并从 double[] 复制
  • 根据this very similar question,唯一的选择似乎是通过第三方库或您自己的代码循环和拆箱(或在您的情况下装箱)数组。
  • 尝试序列化,然后添加到 getSharedPreferences,并读入其他活动...并反序列化它

标签: java android android-intent bundle


【解决方案1】:

您可以循环遍历 Double 数组并通过将 Double.doubleValue() 的输出分配给每个值来填充 double 数组;完成后,您可以将 double[] 数组放入 Bundle

Double D[];
double d[];
for(int i=0 ; i<D.length ; ++i) {
    d[i] = D[i];
}

当然我没有初始化变量,只是举个例子

更新
对于阅读本文的任何人,我也发现这个类似的问题很有用。使用 3rd 方库来解决这个问题很重要,一些 cmets 在不同的场景中添加了一些关于性能的好信息。看看吧:How do I convert Double[] to double[]?

【讨论】:

  • 没有必要这样做。 Doubleautoboxed and unboxed。虽然它是一个对象,但它可以用作一个值。
  • @scheisse_minelli 然后请解释如何使用拆箱将 Double[] 放入捆绑包中
  • 哦,天哪,我想我没有足够清楚地阅读这个问题。你是对的。
  • @scheisse_minelli 不是问题...但是我的代码可以使用拆箱而不是 Double.doubleValue(); 来改进吗? ?这样会更好吗?
  • 哦,是的,你可以直接说d[i] = D[i]