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

然后,当我尝试在第二个"活动"中恢复ArrayList时,我发现ArrayList<String>元素只有一个getStringArrayListExtra()方法,所以它不适用于ArrayList<String[]>。我一直在搜索这方面的内容,我找到的都是自定义对象的示例,其中的解决方案是在它们上实现Parcelable或Serialize接口。如何使用String[]这样的"默认"对象来完成此操作?(或者,由于我还是java新手,我可能错过了一些关于接口如何工作的东西?)

用于发送第一个活动中的数据的代码是正确的。

对于在第二个活动中接收数据,请使用intentgetSerializableExtra()方法,类似于:

ArrayList<String[]> data = (ArrayList<String[]>) getIntent().getSerializableExtra(EXTRA_MESSAGE);

最新更新