2

我正在使用捆绑包将项目的 ArrayList 从一个活动传递到另一个活动。我没有收到任何错误,但项目没有显示在我的第二个活动中。我是否正确实现了 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 (Item[]) 的数组而不是 ArrayList。我不确定 ArrayList 是否可序列化。

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

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

什么是Item..?它是可序列化的......如果不是Serializable

于 2012-04-11T06:17:05.547 回答
1

物品类别:

public class Item implements Serializable

在第一个活动中:

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

在第二个活动(Activity2)中:

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