使用setResult(int, Intent)。从子活动:
Intent intent = new Intent();
intent.putExtra("mydata", mydata);
setResult(RESULT_OK, intent);
序列化
如果问题与序列化有关,您可以使用Html.toHtml 和 Html.fromHtml。使用 toHtml 可以将 Spanned 转换为字符串,而使用 fromHtml 可以得到 spanned。在子活动中序列化 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));
}