MultiselectAdapter (Technik)

Der RecyclerView ist von Google als Nachfolger des ListViews entwickelt wurden. Das Konzept wurde dabei gestrafft, allerdings muß jetzt einiges was beim ListView von Haus aus dabei war, selbst implementiert werden.

Als Code-Probe habe ich meine Lösung für RecyclerViews mit der Databinding-Library auf Cursors oder ArrayListen auf GitHub gestellt. Auch wird dabei der ActionMode für Operationen auf mehrere ausgewählte Datensätze unterstützt.

Google preist den RecyclerView als Ersatz für die ListViews an. Die erweiterten Möglichkeiten sprechen für sich. Allerdings fehlen vorgefertigte Lösungen um mit den verbreiteten Datenquellen wie Cursors und ArrayLists umzugehen. Kein SimpleCursorAdapter etc. - man muß sich seine eigene Lösung stricken. Das ist zwar nicht schwer, erzeugt aber einen Haufen Boilerplate Code wenn man nicht den Aufwand treibt, eine allgemeine Lösung zu entwickeln.

Zusammen mit der Databinding-Library wird daraus aber ein attraktives Paket. Man kann ein Paket schnüren, das nur noch die Daten für den RecyclerView verwaltet. Der ViewHolder ist jetzt auch mehr oder weniger eine "Konstante", die nur noch ein Databinding-Objekt verwalten muß.

Auch fehlt noch der ActionMode für die Auswahl mehrerer Datenzeilen sowie Operationen auf dieser Auswahl. Aber auch das läßt sich recht elegant dazu stricken.

Aus all dem habe ich meinen abstrakten Mulitiselect-Adapter mit seinen beiden Realisierugen MultiselectCursorAdapter und MultiSelectArrayAdapter entwickelt.

Der Code befindet sich bei GitHub: https://github.com/sqrt-1764/multiselectAdapter