Android:如何传递多个ArrayList<;字符串>;值和一个数组列表<;LatLng>;从一个活动到另一个活动?不起作用

Android:如何传递多个ArrayList<;字符串>;值和一个数组列表<;LatLng>;从一个活动到另一个活动?不起作用,android,android-intent,android-activity,arraylist,android-bundle,Android,Android Intent,Android Activity,Arraylist,Android Bundle,我有几个List变量要从Splash传递到主活动: 1)我在某个地方读到,我可以将它们作为ArrayList从Splash传递到Main,它可以。。。即 我只能接收第一个ArrayList变量。在下面的包中,我无法接收第二个数组列表。(数组列表2)为什么 2)如何将ArrayList从一个活动传递到另一个活动 第一项活动: Intent intent = new Intent(SplashActivity.this, MainActivity.class); Bundle b=new Bundl

我有几个
List
变量要从
Splash
传递到主活动:

1)我在某个地方读到,我可以将它们作为
ArrayList
Splash
传递到
Main
,它可以。。。即 我只能接收第一个
ArrayList
变量。在下面的包中,我无法接收第二个
数组列表。
(数组列表2)为什么

2)如何将
ArrayList
从一个活动传递到另一个活动

第一项活动:

Intent intent = new Intent(SplashActivity.this, MainActivity.class);
Bundle b=new Bundle();
b.putStringArrayList("array_list1",(ArrayList<String>)Names);     
b.putStringArrayList("array_list2",(ArrayList<String>)City);
b.putStringArrayList("array_list3",(ArrayList<String>)Country);
b.putStringArrayList("array_list4",(ArrayList<String>)Code);
b.putStringArrayList("array_list5",(ArrayList<LatLng>)coordinates); //ERROR in this line, type mismatch!
intent.putExtras(b);
startActivity(intent);
请回答我的两个问题。其他的话题对我都没有帮助,我花了2个多小时在这上面。 谢谢。

因为类实现了
Parcelable
接口,所以不用
包。putStringArrayList
用于发送ArrayList,该ArrayList包含正在实现
Parcelable
接口的类对象。使用

b.putParcelableArrayList("array_list5",coordinates);
如何将parcelable与List或ArrayList一起使用-什么是 语法

按如下方式操作:

ArrayList<String> arrCoordinates = new ArrayList<>(coordinates.size());
arrCoordinates.addAll(coordinates);
b.putParcelableArrayList("array_list5",arrCoordinates);
因为类实现了
Parcelable
接口,所以不使用
Bundle。putStringArrayList
用于发送ArrayList,该ArrayList包含正在实现
Parcelable
接口的类对象。使用

b.putParcelableArrayList("array_list5",coordinates);
如何将parcelable与List或ArrayList一起使用-什么是 语法

按如下方式操作:

ArrayList<String> arrCoordinates = new ArrayList<>(coordinates.size());
arrCoordinates.addAll(coordinates);
b.putParcelableArrayList("array_list5",arrCoordinates);
putStringArrayList()将不支持ArrayList

使用

而不是

 putStingArrayList();
或者你可以使用直接的意图方法

更改代码如下:

Intent intent = new Intent(SplashActivity.this, MainActivity.class);
Bundle b=new Bundle();
b.putStringArrayList("array_list1",(ArrayList<String>)Names);     
b.putStringArrayList("array_list2",(ArrayList<String>)City);
b.putStringArrayList("array_list3",(ArrayList<String>)Country);
b.putStringArrayList("array_list4",(ArrayList<String>)Code);
putStringArrayList()将不支持ArrayList

使用

而不是

 putStingArrayList();
或者你可以使用直接的意图方法

更改代码如下:

Intent intent = new Intent(SplashActivity.this, MainActivity.class);
Bundle b=new Bundle();
b.putStringArrayList("array_list1",(ArrayList<String>)Names);     
b.putStringArrayList("array_list2",(ArrayList<String>)City);
b.putStringArrayList("array_list3",(ArrayList<String>)Country);
b.putStringArrayList("array_list4",(ArrayList<String>)Code);

为什么将每个对象强制转换为
ArrayList
?只有ArrayList受方法putStringArrayList支持,并且没有其他方法可用于列表为什么将每个对象强制转换为
ArrayList
?只有ArrayList受方法putStringArrayList支持,并且没有其他方法可用于列表请首先解释,列表和ArrayList的第二个活动是什么?“intent.putExtras(b);”正确吗?@Zac1:我的问题是
为什么要将所有对象都转换为ArrayListputStringArrayList方法只支持ArrayList,没有其他方法支持ListYes,第二个活动未收到第二个ArrayList。为什么?请看我代码中的注释。此外,在列表中使用parcelable会产生错误,“方法putParcelableArrayList(String,ArrayList@Zac1:好的,然后使用
(ArrayList)坐标
您能解释一下列表和ArrayList的第一个和第二个活动吗?是“intent.putExtras(b);“正确吗?@Zac1:我的问题是
为什么将每个对象强制转换为ArrayList?
方法putStringArrayList只支持ArrayList,并且没有其他方法用于ListYes,第二个活动没有收到第二个ArrayList。为什么?请查看我代码中的注释。另外,使用列表上的parcelable会出现错误,“方法putParcelableArrayList(字符串,ArrayList@Zac1:好的,然后使用
(ArrayList)坐标
你能解释一下列表和ArrayList的第一个和第二个活动吗?是“intent.putExtras(b);“correct”?intent,putExtras(b);只正确..LatLng类是一个可分组类,所以应该使用putParcelableArrayList(“array_list5”,坐标);我得到错误:“方法putParcelableArrayList(String,arraylisty)您不应该对arraylist进行类型转换。无论如何,您只传递了arraylist对象na.。因此不需要进行类型转换。我理解将putParcelableArrayList用于LatLng。它用于列表的语法是什么?您的代码中有此错误——”putParcelableArrayList(String,ArrayList)方法你能解释一下List和ArrayList的第一个和第二个活动吗?是“intent.putExtras(b);“correct”intent,putExtras(b);只正确..LatLng类是一个可打包类,所以应该使用putParcelableArrayList(“array_list5”,坐标);我得到错误:“方法putParcelableArrayList(String,arraylist)您不应该对arraylist进行类型转换。无论如何,您只传递了na..arraylist对象,因此不需要进行类型转换。我理解将putParcelableArrayList用于LatLng。将其用于List的语法是什么?您的代码中有此错误-”“方法putParcelableArrayList”(字符串,数组列表)
intent.putParcelableArrayListExtra("array_list5",coordinates);
intent.putExtras(b);
startActivity(intent);