使用自定义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新手,我可能错过了一些关于接口如何工作的东西?)
用于发送第一个活动中的数据的代码是正确的。
对于在第二个活动中接收数据,请使用intent
的getSerializableExtra()
方法,类似于:
ArrayList<String[]> data = (ArrayList<String[]>) getIntent().getSerializableExtra(EXTRA_MESSAGE);