我正在实现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}}的事情混为一谈。
答案 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。