通过Intent发送自定义ArrayList

时间:2016-03-31 10:44:27

标签: java android android-intent arraylist

我在使用自定义ArrayLists并尝试在活动之间移动时遇到问题。首先,我在第一个活动中声明了一个自定义ArrayList:

private ArrayList<String[]> dataArray = new ArrayList<String[]>();

其中ArrayList的每个元素都是一个String元素数组。

接下来,我将它放入putExtra()的意图中:

Intent int1 = new Intent(this, ManualModeActivity.class);
int1.putExtra(EXTRA_MESSAGE, dataArray);

然后,当我尝试在第二个Activity中恢复ArrayList时,我发现ArrayList<String>元素只有一个getStringArrayListExtra()方法,所以它不能用{{ 1}}。我一直在搜索这个,我发现的只是自定义对象的示例,解决方案是在它们上实现Parcelable或Serialize接口。我怎么能用&#34;默认&#34;对象像String []? (或者我可能错过了一些关于接口如何工作的东西,因为我还是java中的新手?)

2 个答案:

答案 0 :(得分:0)

如果E类型为ArrayList<E>,您可以采用相同的方式传递Serializable

您可以调用Intent的putExtra (String name, Serializable value)进行存储,并getSerializableExtra (String name)进行检索。

示例:

ArrayList<String> myList = new ArrayList<String>();
intent.putExtra("mylist", myList);
In the other Activity:

ArrayList<String> myList = (ArrayList<String>) getIntent().getSerializableExtra("mylist");

答案 1 :(得分:0)

您从第一项活动发送数据的代码是正确的。

要在第二个活动中接收数据,请使用intent的{​​{1}}方法,例如:

getSerializableExtra()