Android getSerializable()

时间:2012-04-11 06:04:11

标签: java android serialization

我使用bundle将一个项目的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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

项目类:

public class Item implements Serializable

在第一个活动中:

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

在第二项活动(活动2)中:

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

答案 2 :(得分:1)

只是猜测:您是否尝试序列化Item(Item [])而不是ArrayList的数组。如果ArrayList是可序列化的,我不是不可能的。

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

Bundle loadInfo = getIntent().getExtras();
items = (Item[]) loadInfo.getSerializable("items");