从getParcelableExtra(intent_name)创建实现Parcelable的Object的语法

时间:2012-04-02 19:54:35

标签: android android-intent deserialization parcelable parcel

我正在实现RESTful通信的DataDroid模型,并且在实现SearchCriteria时遇到了编译器错误。问题是,为了将SearchCriteria作为额外的意图传递,我必须使其实现Parcelable。但是,我的Worker start函数需要SearchCriteria个类,从而导致错误:Required: my.classes.SearchCriteria; Found: android.os.Parcelable

假设我已为Parcelable课程正确实施SearchCriteria,如何从地块快速创建对象(使用getParcelable Extra(INTENT_NAME)找到地块?

编辑:我意识到我可以通过SearchCriteria来自Parcel公开我的Parcel构造函数来快速完成此任务,但还有另一种方法吗?实际上,这不起作用 - 我将Parcelable与{{1}}的事情混为一谈。

1 个答案:

答案 0 :(得分:0)

假设您遵循the API并使SearchCriteria正确实现Parcelable,并且已从数据库或Http服务器等基础业务层正确构造或实例化您的SearchCriteria。

通过意图将其传递给下一个活动:

SearchCriteria searchCriteria = createSearchCriteria();
Intent intent = new Intent(getBaseContext(), NextActivity.class);
intent.putExtra("searchCriteria", searchCriteria);
startActivity(intent);

要在下一个活动中从意图中检索它:

 SearchCriteria searchCriteria = getIntent().getParcelableExtra("searchCriteria");
 myWorker.search(searchCriteria);

在大多数情况下,我们不需要直接打扰Parcel。