从活动返回数组

时间:2012-09-30 21:35:54

标签: android arraylist tostring object-to-string

我目前正在开发一个Android项目,我希望能够启动StartActivityForResult,以便我可以返回一个数组。

数组是ArrayList<Spanned>让我们称之为myArray。

从我读过的内容我无法使用set结果直接从activty返回一个数组,所以我想,一旦数组将所有数据添加到数组中,我就可以调用它上面的toString函数了,即myArray.toString()

如果我这样做,我不知道如何将其转换回原来的ArrayList<Spanned>

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

使用setResult(int, Intent)。从儿童活动:

Intent intent = new Intent();
intent.putExtra("mydata", mydata);

setResult(RESULT_OK, intent);

序列化

如果问题与序列化有关,则可以使用Html.toHtml and Html.fromHtml。使用toHtml,您可以将Spanned转换为字符串,并从fromHtml获得跨越。在子活动中序列化Spanned并输入额外的:

Intent intent = new Intent();
ArrayList<Spanned> myData;
ArrayList<String> strings = new ArrayList<String>();
for(Spanned item : myData)
    strings.add(Html.toHtml(item));
intent.putStringArrayListExtra("mydata", strings);

setResult(RESULT_OK, intent);

获取调用者活动中的数据,使用onActivityResult中传递的意图:

protected void onActivityResult (int requestCode, int resultCode, Intent data) {
    ArrayList<Strings> strings = data.getStringArrayListExtra("mydata");
    ArrayList<Spanned> spanned = new ArrayList<Spanned>();
    for(String s : strings)
       spanned.add(Html.fromHtml(s));
}