我在我的 Android 项目中使用 Android 注释。由于实现 Parcelable 需要做很多工作,我想使用 Parceler 和 @Parcel 注释。
问题是,如果我想通过 Android Annotations 使用 @FragmentArg 注释,它不会(出于显而易见的原因)认识到该类将在实现 Parcelable 接口的情况下生成。我现在有两个问题:
- Parceler 将生成的类放在哪里以便我可以使用这些类?在 parceler.org 上声明:“要使用生成的代码,您可以直接引用生成的类,或通过 Parcels 实用程序类”
- 是否有另一种方法可以使用 Parceler 或任何使用 Android Annotations 生成 Parcelable 样板代码的库?
到目前为止,我的 Fragment 代码如下所示:
@EFragment(R.layout.fragment_faq)
public class FaqFragment extends ListFragment {
@FragmentArg
ArrayList<FaqItemImpl> faqItems;
// ...
}
生成的 POJO 类使用 @Parcel 进行注释:
@Parcel
public class FaqItemImpl implements FaqItem {
protected String iconURL;
protected String title;
protected String question;
protected String answer;
protected ArrayList<FaqItemImpl> faqChildren;
// ...
}
在生成的 FaqFragment_ 中,有趣的部分是:
// ...
public FaqFragment_.FragmentBuilder_ faqItems(ArrayList<FaqItemImpl> faqItems) {
args.putSerializable(FAQ_ITEMS_ARG, faqItems);
return this;
}
// ...
如您所见,生成的类将 POJO 视为可序列化...