Mam kawałek kodu za pomocą AndroidAnnotations który jest bardzo podobny do tego znalezionego w:Dodawanie argumenty AndroidAnnotation wstrzykuje fasolę
https://github.com/excilys/androidannotations/wiki/Adapters-and-lists
Jednak - Chcę przekazać argument do adaptera listy, aby określić która lista - np.
@AfterInject
void initAdapter() {
persons = personFinder.findAll(companyName);
}
Jaki jest najlepszy sposób powiązania companyName z adapterem? Nie mogę użyć konstruktora z AnroidAnnotations - i @AfterViews jest wywoływany przed @AfterViews z fragmentu nadrzędnego, więc nie mogę wtedy wywołać setterów.
Obecnie włamałem się do połączenia, aby ręcznie ustawić parametry, a następnie odświeżyłem widok i usunąłem @AfterViews - ale jest to paskudne i niewiarygodne, ponieważ powielam wzór w hierarchii.
EDIT
Wystarczy wywołanie seter pracuje w najprostszym przypadku - i to, co aktualnie mam. Ale nie działa dobrze w bardziej skomplikowanym przypadku. tj
EFragment-> EViewGroup-> EBean ListAdapter
Ponieważ nie mogę użyć konstruktora, muszę czekać, aż pełna hierarchia staje się i położył się przed fragment opowiada ViewGroup które firmy, aby pokazać firmę informacje, które z kolei przekazują ListAdapter firmie, dzięki której mogę uzyskać informacje o tym, którzy ludzie itp. Nie wymaga to dużego wysiłku, aby było bardzo niechlujnie i jeśli moje dane były w Internecie - interfejs prawdopodobnie wyglądałby jak strona internetowa od lat 90.
Miałem nadzieję, że skorzystam z czegoś takiego jak @Extras - lub mam możliwość przekazania argumentów dla @AfterInject do użycia, lub nawet umieszczenia identyfikatora companyId w kontekście fragmentów bez wiązania mojego ListAdaptera do pracy tylko z jednym typem Fragmentu. ..
nie mogę zrozumieć, dlaczego seter dla companyName w t Adapter nie wystarczy. Myślę, że prosty setter osób z notifyDataSetChanged() jest najprostszym sposobem. –
Z pewnością działa w najprostszym przypadku - i jest to, co obecnie mam. – Silver