如何使用intent将具有非可序列化子对象的可序列化对象从一个Android活动发送到另一个Android活动

时间:2014-12-18 13:18:17

标签: java android object android-intent serializable

我有一个不可序列化的孩子的seralisable类。我想将这个类的对象从ona android活动发送到另一个,但我不能。课程如下:

public class A implements Serializable{

/**
 * generated serial version UID
 */
private static final long serialVersionUID = -3445290513860716092L;

private B b;

public A () {}

public B getB() {
    return b;
}

public void setB(B b) {
    this.b = b;
}
}

B类不可序列化

public class B{

private int ID;
protected String name;

public B() {}

...
}

我使用Intent的putExtra方法发送对象。

Intent i = new Intent(ActivityA.this, ActivityB.class);
A a = new A();
B b = new B();
b.setID(1);
b.setName("Name");
a.setB(b);
i.putExtra("object", a);
startActivity(i);

活动开始时发生错误。有什么问题?

1 个答案:

答案 0 :(得分:2)

要序列化一个类,它的所有子代必须是可序列化的。对于不可序列化的孩子,你不能这样做。你必须使其所有孩子(以及他们的孩子)都可以序列化。