0

我正在实现 RESTful 通信的 DataDroid 模型,在实现我的SearchCriteria. 问题是,为了将SearchCriteria周围作为额外的意图传递,我必须让它实现Parcelable。但是,我Workerstart函数需要一个SearchCriteria类,导致错误:Required: my.classes.SearchCriteria; Found: android.os.Parcelable.

假设我已经Parcelable为我的SearchCriteria班级正确实现了,我怎样才能从一个包裹中快速创建一个对象(使用getParcelable Extra(INTENT_NAME)?

编辑:我意识到我可以通过公开我的构造函数来快速完成这一点SearchCriteriaParcel但是还有另一种方法吗?实际上,这不起作用-我将 aParcelParcelable事物混淆了。

4

1 回答 1

0

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

要按意图将其传递给下一个活动:

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。

于 2012-04-02T21:34:13.047 回答