我有一段使用 AndroidAnnotations 的代码,它与在以下位置找到的代码非常相似:
https://github.com/excilys/androidannotations/wiki/Adapters-and-lists
但是-我想将参数传递给列表适配器以指定哪个列表-即
@AfterInject
void initAdapter() {
persons = personFinder.findAll(companyName);
}
将 companyName 与 Adapter 关联的最佳方法是什么?我不能将构造函数与 AnroidAnnotations 一起使用 - 并且 @AfterViews 在父片段的 @AfterViews 之前调用,所以我不能调用 setter。
我目前在调用手动设置参数然后刷新视图并删除@AfterViews - 但它令人讨厌且不可靠,因为我将模式复制到层次结构中。
编辑
在最简单的情况下,只需调用 setter 即可 - 这就是我目前所拥有的。但在更复杂的情况下效果不佳。IE
EFragment->EViewGroup->EBean ListAdapter
由于我不能使用构造函数,我必须等到完整的层次结构被渲染和布局,然后片段告诉 ViewGroup 哪个公司显示公司信息,这反过来告诉 ListAdapter 哪个公司,这样我就可以得到哪些人,等等。它变得非常混乱并不需要太多努力,如果我的数据在网络上 - UI 可能会像 90 年代的网页一样呈现。
我希望使用像@Extras 这样的东西 - 或者有一种方法可以传递@AfterInject 使用的参数,或者甚至只是将companyId 放在片段上下文中而不将我的ListAdapter 绑定到只使用一种类型的片段......