2

バンドルを使用して、アイテムの ArrayList をあるアクティビティから別のアクティビティに渡しています。エラーは発生していませんが、アイテムが 2 番目のアクティビティに表示されません。getSerializable() と putSerializable() を正しく実装していますか?

ここに私の最初の活動からのスニペットがあります

ListArray 宣言

ArrayList<Item> items = new ArrayList<Item>();

アイテムがバンドルに入れられる場所

 Intent ListIntent = new Intent(home.this, SectionListExampleActivity.class);
 Bundle loadInfo = new Bundle();
 loadInfo.putSerializable("items", items);
 ListIntent.putExtras(loadInfo);

第二の活動

Bundle loadInfo = getIntent().getExtras();
    items = (ArrayList<Item>) loadInfo.getSerializable("items");

両方のアクティビティで Serializable を実装しました。最初のアクティビティで ArrayList が読み込まれることを確認しました

4

3 に答える 3

1

とはItem..? それは直列化可能ですか...そうでない場合Serializable

于 2012-04-11T06:17:05.547 に答える
1

推測ですが、ArrayList の代わりに Item (Item[]) の配列をシリアル化しようとしましたか。ArrayList がシリアライズ可能かどうかはわかりません。

loadInfo.putSerializable("items", items.toArray());

Bundle loadInfo = getIntent().getExtras();
items = (Item[]) loadInfo.getSerializable("items");
于 2012-04-11T08:37:26.217 に答える
1

アイテム クラス :

public class Item implements Serializable

最初のアクティビティで:

Intent intent = new Intent(this, Activity2.class);
        intent.putExtra("items", items);
        startActivity(intent);

2 番目のアクティビティ (Activity2):

ArrayList<Item> items = (ArrayList<Item>) getIntent().getExtras()
                .getSerializable("items");
于 2012-04-11T08:08:19.803 に答える