Je suis confus en changeant la couleur d'arrière-plan d'une ligne particulière dans une vue de liste, ci-dessous est le code que j'ai essayé. Différentes lignes sont mises en évidence lorsque je fais défiler la liste, je voudrais comprendre la raison derrière cela. La logique semble assez simple, mais les résultats sont imprévisibles. Comment suis-je censé accomplir ceci.Difficulté à modifier la couleur d'arrière-plan d'une ligne particulière dans une liste personnalisée Android
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.rows_for_layout, null);
holder = new ViewHolder();
holder.name = (TextView)convertView.findViewById(R.id.name);
holder.rated=(ImageView)convertView.findViewById(R.id.rated);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
//selected_position is the position where the list has to be highlighted
if(position==selected_position){
holder.name.setText(elements.get(position).get("name"));
convertView.setBackgroundResource(R.drawable.highlight_this);
holder.rated.setBackgroundResource(R.drawable.star_image);
}else{
holder.name.setText(elements.get(position).get("name"));
}
return convertView;
}//getView ![alt text][1]
ne vois aucun problème avec le code, lorsque vous modifiez/la mise à jour variable « selected_position »? –
Je mets les valeurs pour la variable 'selected_position' dans la méthode onCreate(), pour référence s'il vous plaît vérifier cette URL pour le code complet http://pastebin.com/ki7q6Wy0 – ganesh
, vous pouvez vérifier l'image à http: //i56.tinypic .com/10x7rsw.png – ganesh