0

这就是我正在做的。

“e”定义为

Option e[];

其中 Option 是我实现 Serializable 的类

Intent intent =new Intent(this,list_create.class); 
intent.putExtra("element", e);
startActivity(intent); 

在第二个活动中,我正在这样检索

Intent i = getIntent();
Option e = (Option)i.getSerializableExtra("element");

但它在“startActivity(intent)”处给出了 java.io.notSerializableException。我在这里做错了什么?

4

5 回答 5

1

我不确定,但是,这可能会有所帮助,

intent.putParcelableArrayListExtra("elements", e);

从第二个活动得到,

Intent i = getIntent();
Option e = (Option)i.getParcelableArrayListExtra("element");
于 2012-08-02T05:19:57.180 回答
1

将 aArrayList作为容器用于Option. 一个 Arraylist 是Serializable. 界面List不是。Serializable

即使Optionis SerializableOptionmust be的属性Serializable也是如此。如果一个属性不应该被转移,它必须用关键字标记transient

于 2012-08-02T07:11:18.873 回答
0

我认为你必须将数组对象作为字节发送,然后你从字节中重建

检查这个链接

Java 可序列化对象到字节数组

于 2012-08-02T05:24:04.180 回答
0

你可以通过任何你想要的。

创建一个新类,随心所欲地投入其中,并使其实现可序列化。

public class myClass  implements Serializable{
// Whatever fields
}
于 2012-08-02T07:24:51.800 回答
0

OptionOption是可序列化的,但您正在发送与序列化概念背道而驰的类型数组。

相反,您应该在您的Option班级中有一个数组,其中包含您需要发送的所有选项。然后你只放一个 type 元素Option

于 2012-08-02T07:06:25.340 回答