我在将ArrayList
传递到Android Studio中的另一个活动时遇到问题。
我创建了一个ArrayList
,该数据类型为Double
。该程序应阅读并在控制台中打印。
这是第一个活动的代码:
Intent intent = new Intent(this, ergebnisse.class);
intent.putExtra("WLTP_list", Wlist);
startActivity(intent);
这是第二个活动的代码:
Bundle bundle = getIntent().getExtras();
ArrayList<Double> Wlist = (ArrayList<Double>) bundle.getDoubleArray("WLTP_list");
最后一个等号后的部分标记为红色,错误为:
Inconvertible types; cannot cast 'double[]' to 'Java.util.ArrayList<Java.lang.Double>'
我没有更改类型,所以我不知道为什么它会给我这个错误。
答案 0 :(得分:1)
您正在调用bundle.getDoubleArray()
,它返回一个数组而不是ArrayList,这就是为什么在尝试将double []数组转换为ArrayList时收到错误的原因。
答案 1 :(得分:1)
getDoubleArray()方法返回类型为double []的数组,该数组不能显式转换为ArrayList。如果您真的想将其用作ArrayList,则需要获取double []数组并将其显式转换为ArrayList。例如,类似
ArrayList<Double> Wlist = ArrayList<Double>(Arrays.asList( bundle.getDoubleArray("WLTP_list")));
答案 2 :(得分:0)
请在第二个活动中尝试以下代码:
ArrayList<Double> Wlist = (ArrayList<Double>) getIntent().getSerializableExtra("WLTP_list");
您正在使用的当前方法返回数据类型为Array
的{{1}},而不是Double
。我提供的代码应该给您一个ArrayList
。
如果该行不起作用,您可以随时查看this的答案。
答案 3 :(得分:0)
尝试这种方式。
第一个活动:
Intent intent = new Intent(this, SecondActivity.class);
ArrayList<Double> listDouble = new ArrayList<Double>();
listDouble.add(1.0);
listDouble.add(2.0);
intent.putExtra("WLTP_list", listDouble);
startActivity(intent);
第二活动:
ArrayList<Double> listDouble = (ArrayList<Double>) getIntent().getSerializableExtra("WLTP_list");
System.out.println("Return.." + listDouble);