CursorAdapter-bindView-Optimierung
Beim überschreiben der ArrayAdapter ich weiß, korrekt ist mit einem Muster wie dieses:
if(view != null){
...create new view setting fields from data
}else
return view; //reuse view
korrekt ist auch die Verwendung dieser Muster mit CursorAdapters? Mein problem ist, dass ich eine Textfarbe, die kann rot oder blau entsprechend zu einer cursor-Feld, so dass ich nicht wollen, dass jeder Fehler wie ein Roter Farbe auf eine Zelle, welche ein Feld benötigen, Blaue Farbe.
Meine bindView-code ist so etwas wie dieses:
if(c.getString(2).equals("red"))
textView.setTextColor(<red here>);
else
textView.setTextColor(<blue here>);
wenn ich wiederverwenden Ansicht kann ich sicher sein, dass rot geht auf rot, während blau geht auf blau?
InformationsquelleAutor der Frage user1610075 | 2012-08-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
In
CursorAdapter
erhalten Sie das layout innewView
und binden von Daten inbindView
.CursorAdapter
bereits Wiederverwendung Muster ingetView
so dass Sie nicht es wieder tun. Unten ist der originalgetView
source-code.Wenn Sie wollen weitere Optimierung mit
ViewHolder Pattern
hier ist ein Beispiel: Create tag innewView
abrufen und inbindView
InformationsquelleAutor der Antwort Nam Trung
Ja,
getView
ist inAdapter
und ist nicht abhängig vonArrayAdapter
nochCursorAdapter
.recycling ist immer eine gute Praxis. Sicher, dass der code legt eine Farbe in jeder situation.
InformationsquelleAutor der Antwort rds