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));
}