Ich habe einen einfachen Cursor-Adapter in einer Liste in meiner Anwendung wie folgt gesetzt:
%Vor%R.layout.row besteht aus zwei TextViews (genreBox und colorBox). Anstatt den Inhalt der TextView auf den Wert von "Farbe" zu setzen, möchte ich die Hintergrundfarbe auf diesen Wert einstellen.
Was müsste ich tun, um dies zu erreichen?
Sehen Sie sich SimpleCursorAdapter.ViewBinder an.
setViewValue ist im Grunde Ihre Chance, mit den Daten in Ihrem Cursor
zu tun, was Sie wollen, einschließlich der Hintergrundfarbe Ihrer Ansichten.
Zum Beispiel etwas wie:
%Vor% Aktualisieren - Wenn Sie einen benutzerdefinierten Adapter verwenden (erweitert CursorAdaptor
), ändert sich der Code nicht sehr. Sie überschreiben getView
und bindView
:
Sie tun ein bisschen mehr manuell, aber es ist mehr oder weniger die gleiche Idee. Beachten Sie, dass Sie in all diesen Beispielen Leistung sparen können, indem Sie die Spaltenindizes zwischenspeichern, anstatt sie über Zeichenfolgen nachzuschlagen.
Was Sie suchen, erfordert einen benutzerdefinierten Cursor-Adapter. Sie können SimpleCursorAdapter von der Unterklasse ableiten. Dies ermöglicht grundsätzlich den Zugriff auf die erstellte Ansicht (obwohl Sie sie selbst erstellen).
Siehe Blogpost zu benutzerdefinierten CursorAdaptern für ein vollständiges Beispiel. Insbesondere denke ich, dass du bindView
überschreiben musst.
Tags und Links android simplecursoradapter listview