安卓:问题Serializable对象投入的意图
-
20-09-2019 - |
题
您好我有一类我想通过将其放入在putExtras的意图传递问题() 其序列和代码看起来是这样的:
public abstract class ObjectA extends ArrayList<ObjectA> implements java.io.Serializable{...}
public class ObjectB extends ObjectA {...}
...
Bundle extras = new Bundle();
extras.putSerializable("blabla", ObjectB);
intent.putExtras(extras);
...
Object y = getIntent().getExtras().get("blabla");
问题是,使y现在是一个ArrayList和不再是对象B,所以我不能投它.. 如果我的代码变更为
public class ObjectB implements java.io.Serializable {...}
能正常工作
解决方案
通过在你的类实现既java.util.List中和了java.io.Serializable你触发此的机器人错误。
其他提示
我怀疑有什么情况是,因为你没有申报对象B为可序列化它的“回落”到最近的父对象即是。所以,当你把它给你包未实际投入对象B,但对象B转换回ArrayList的。
我认为你将不得不去与第二(“工作正常”)的代码。
你是如何申报对象B你将它传递到集合前? 从我明白你的问题,你要删除它时,没有得到错误当你在捆绑过程,只。 尝试retreiving您的对象B为对象B型直接像这样:
ObjectB y = (ObjectB) getIntent().getExtras().get("blabla");
在ObjectA
的ArrayList
应该实现接口Parcelable
。之后,你可以放在你的意图的ArrayList,并让他们在另一个活动。
不隶属于 StackOverflow