【发布时间】:2013-12-28 02:03:51
【问题描述】:
我正在尝试使用 Serializable 使用以下代码将对象从一个活动传递到另一个活动:
final Event rowItem = (Event) getItem(position);
Intent intent = new Intent(context, DetailsActivity.class);
intent.putExtra("event", rowItem);
context.startActivity(intent);
这工作正常(没有错误),所以在另一端我想再次使用反序列化它:
Intent intent = getIntent();
Event event = (Event) intent.getSerializableExtra("event");
不幸的是,这会导致错误提示:
java.lang.ClassCastException: java.lang.String cannot be cast to com.mycomp.model.Event
这是我第一次使用 Serializable 来传递对象,所以我可能会做一些非常愚蠢的事情。不过我不知道是什么。
有人知道我在这里做错了什么吗?如果需要,我很乐意分享更多代码..
[编辑]
结果我确实为每个参数使用了@SerializedName(value = "the_serialized_name"),但我没有使用implements Serializable 和类名。非常愚蠢的我。不过谢谢你的回答!
【问题讨论】:
-
与我们分享更多代码,但您不应该在 android 中使用 Serializable。而是使用 Parcelable,看看文档和一些代码示例,它非常简单。
-
你的班级
Event实现了Serializable吗?
标签: java android serialization casting serializable