我目前正在开发一个Android项目,我希望能够启动StartActivityForResult,以便我可以返回一个数组。
数组是ArrayList<Spanned>
让我们称之为myArray。
从我读过的内容我无法使用set结果直接从activty返回一个数组,所以我想,一旦数组将所有数据添加到数组中,我就可以调用它上面的toString函数了,即myArray.toString()
。
如果我这样做,我不知道如何将其转换回原来的ArrayList<Spanned>
。
感谢您提供的任何帮助。
答案 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));
}