Hola grupo,
Tengo un Listiview en un activity que extiende de ListActivity que muestra una lista con el siguiente comportamiento:
- Cuando un item cumple una condición especifica se le aplica un color de fondo.
- Cuando se hace "click" (evento onListItemClick) en un item de la lista el color de fondo debe ser quitado y volver al color original
El problema se da al momento de usar el scroll y avanzar en los items de la lista aparecen con color de fondo los items que no cumplen la condición.
Código del adapter (Adapter personalizado: SimpleCursorAdapter) para crear los items del listview:
Código:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = convertView;
if (rowView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = inflater.inflate(this.layout, null);
ViewHolder viewHolder = new ViewHolder();
viewHolder.textViewName = (TextView) rowView.findViewById(R.id.textViewName);
rowView.setTag(viewHolder);
}
ViewHolder holder = (ViewHolder) rowView.getTag();
Cursor c = getCursor();
c.moveToPosition(position);
//Seteamos los datos de las columnas
holder.textViewName.setText(c.getString(c.getColumnIndexOrThrow("name")));
//Asignamos el color de fondo en caso que el item no ha sido leido
if(c.getString(c.getColumnIndexOrThrow("unread")).equals("1")){
rowView.setBackgroundColor(Color.BLUE);
}
return rowView;
}
//Evento click para los items del listiview: Áca le quito el color de fondo
Código:
protected void onListItemClick(ListView listView, View view, int position, long id) {
View item = view;
item.setBackgroundColor(Color.TRANSPARENT);
}
El efecto deseado se logra, es decir, muestra las filas con el color de fondo y al hacer "click" le quita el color, pero al hacer scroll, llegar al final de la lista y luego volver a recorrer la lista los items vuelven a aparecer con el color de fondo siendo que se lo quitamos en el evento "click"
¿ Cual puede ser el problema ?
¿ Por qué cuando uso el scroll y recorro los items vuelve a aparecer el color de fondo de la fila que fue quitado al hacer click?
Saludos y gracias.