1

現在、Android プロジェクトに取り組んでおり、startActivityForResult を使用して配列を返すことができるようにしたいと考えています。

配列は、ArrayList<Spanned>myArray と呼ばれるものです。

私が読んだことから、セット結果を使用してアクティビティから直接配列を返すことはできないため、配列がすべてのデータを配列に追加したら、 toString 関数を呼び出すことができると考えていましたmyArray.toString().

これを行うと、これを元の に戻す方法がわかりませんArrayList<Spanned>

ご協力いただきありがとうございます。

4

1 に答える 1

2

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));
}
于 2012-09-30T21:43:25.207 に答える