ich ein Stück Code AndroidAnnotations haben, die mit dem bei gefunden sehr ähnlich ist:Hinzufügen Argumente zu AndroidAnnotation injiziert Bohnen
https://github.com/excilys/androidannotations/wiki/Adapters-and-lists
jedoch - Ich möchte ein Argument der Liste Adapter passieren zu spezifizieren welche Liste - dh
@AfterInject
void initAdapter() {
persons = personFinder.findAll(companyName);
}
Was ist der beste Weg, companyName mit dem Adapter zu verbinden? Ich kann den Konstruktor nicht mit AnroidAnnotations verwenden - und @AfterViews wird vor den @AfterViews des Elternfragments aufgerufen, sodass ich Setter dann nicht aufrufen kann.
Ich habe derzeit in einem Aufruf gehackt, um die Parameter manuell zu setzen, dann aktualisieren Sie die Ansicht und entfernt die @AfterViews - aber es ist böse und unzuverlässig, wie ich das Muster in der Hierarchie duplizieren.
EDIT
ruft einfach die Setter im einfachsten Fall arbeitet - und ist das, was ich zur Zeit. Aber funktioniert im komplizierteren Fall nicht gut.
dhEFragment-> EViewGroup-> EBean ListAdapter
Da ich nicht den Konstruktor verwenden kann, muss ich warten, bis die volle Hierarchie wiedergegeben wird und angelegt, bevor das Fragment, das das Viewgroup sagt die Firma Firma zeigen Info, die wiederum dem ListAdapter mitteilt, welche Firma ich bekomme, welche Leute etc. Es braucht nicht viel Aufwand, um es sehr unordentlich zu bekommen und wenn meine Daten im Web waren - würde die UI wohl wie eine Webseite rendern aus den 90ern.
Ich hatte gehofft, etwas wie @Extras zu verwenden - oder habe eine Möglichkeit, Argumente für @AfterInject zu übergeben oder einfach nur die CompanyId in den Fragmentkontext zu legen, ohne meinen ListAdapter zu binden, um nur mit einem Fragmenttyp zu arbeiten. diese
@EFragment
public class MyFragment extends Fragment {
@FragmentArg("myStringArgument")
String myMessage;
@FragmentArg
String anotherStringArgument;
@FragmentArg("myDateExtra")
Date myDateArgumentWithDefaultValue = new Date();
}
Quelle ..
ich kann nicht verstehen, warum ein Setter für die in t company Der Adapter ist nicht genug. Ich denke, dass ein einfacher Setter von Personen mit notifyDataSetChanged() der einfachste Weg ist. –
Sicher funktioniert das im einfachsten Fall - und das habe ich zur Zeit. – Silver