CursorAdapter bindView optimisation
Lors de la substitution ArrayAdapter je sais, c'est correct à l'aide d'un modèle comme ceci:
if(view != null){
...create new view setting fields from data
}else
return view; //reuse view
est correct aussi à l'aide de ce modèle avec CursorAdapters? Mon problème est que j'ai un textcolor qui peut être rouge ou bleu selon un champ curseur, donc je ne veux pas toutes les erreurs comme une couleur rouge sur une cellule qui possède un champ ayant besoin de couleur bleue.
Mon bindView code est quelque chose comme ceci:
if(c.getString(2).equals("red"))
textView.setTextColor(<red here>);
else
textView.setTextColor(<blue here>);
si je réutiliser vue puis-je être sûr que le rouge va sur le rouge, tandis que le bleu va sur le bleu?
source d'informationauteur user1610075
Vous devez vous connecter pour publier un commentaire.
Dans
CursorAdapter
vous obtenez la mise ennewView
et lier les données dansbindView
.CursorAdapter
déjà faire la réutilisation de modèle dansgetView
de sorte que vous de ne pas avoir à le faire à nouveau. Ci-dessous est à l'originegetView
code source.Si vous souhaitez plus d'optimisation à l'aide de
ViewHolder Pattern
ici est un exemple: Créer une balise dansnewView
et récupérer enbindView
Oui,
getView
est dansAdapter
et n'est pas dépendant deArrayAdapter
niCursorAdapter
.le recyclage est toujours une bonne pratique. S'assurer que le code définit une couleur dans chaque situation.