您好我有一类我想通过将其放入在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");

ObjectAArrayList应该实现接口Parcelable。之后,你可以放在你的意图的ArrayList,并让他们在另一个活动。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top