Skip to content

Instantly share code, notes, and snippets.

@jmartinesp
Last active December 17, 2015 17:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jmartinesp/5644728 to your computer and use it in GitHub Desktop.
Save jmartinesp/5644728 to your computer and use it in GitHub Desktop.
La cosa es que los elementos de una lista siempre van a estar reutilizándose, así que el truco está en comprobar cuál tenemos seleccionado en base a la posición del mismo, y cambiarle el fondo a "seleccionado". Como esto haría sólo que cada vez que apareciera por pantalla un view con esa posición este cambiara de color, acabaríamos con todos los…
public class CustomAdapter extends ArrayAdapter<Algo> {
// Indice en la lista del item seleccionado
private int selected = -1;
public View getView(final int position, ...) {
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Aquí hemos seleccionado el elemento
selected = position;
}
});
if(position == selected) {
// El item que estamos procesando es el seleccionado, cambiamos su fondo
convertView.setBackgroundColor(R.color.list_selected);
} else {
// No es el seleccionado, ponemos su fondo normal por si acaso
convertView.setBackgroundColor(R.color.list_normal);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment