注意:解决方案在答案中,首先是我不能接受的解决方案,因为它是我自己的答案。我希望这对其他人有帮助。
我想让我的类,包括一个可打包的对象,成为可打包的。换句话说,假设我有一个包含3个字段的类: String name、int id和Location loc。现在我想让这个类成为Parcelable类。我该怎么做呢?到目前为止,我就是这么做的:
public MyClass(Parcel in) {
name = in.readString();
id = in.readInt();
loc = in.readParcelable(Location.class.getClassLoader()); }
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeInt(id);
dest.writeParcelable(loc, flags); }当我使用它时,我得到了错误:解组时找不到类...有谁知道我为什么会得到这个错误,以及如何修复它?提前感谢您的回复。
编辑:
我必须补充一点,由于我要将此数据发送到一个服务,该服务正在处理它自己的进程,所以我使用的是Handler技术,所以这可能是问题所在。但是该方法仍然做得很好,因为在我引入MyClass中的Location对象之前,它一直工作得很好。
发布于 2014-07-22 18:51:15
解决方案:我找到了解决方案。我的实现是好的。问题是我在一个单独的进程中发送消息,所以我需要设置适当的classLoader才能使其正常工作。所以上面的代码是正确的,当我从捆绑包或消息中检索对象时,我必须进行更改。我将粘贴提供给我解决方案的链接,即使没有人将其设置为正确答案:Problem unmarshalling parcelables
发布于 2014-07-21 19:27:31
这部分代码似乎是正确的。
https://stackoverflow.com/questions/24863823
复制相似问题