resaltando el elemento seleccionado en la vista de lista en Android

Tengo 1 lista de contactslist vista de lista. Escribí el código para resaltar el elemento seleccionado en ListView . Está funcionando. Cuando hago clic en 1 elemento, se resalta ese elemento, pero el problema es que si hago clic en otro elemento también lo resaltaré. Quiero resaltar solo el elemento seleccionado. La selección anterior deberá desaparecer cuando haga clic en otro elemento.

 arg1.setBackgroundResource(R.drawable.highlighter); 

Este es el código en el oyente click que usa para resaltar el elemento seleccionado. por favor ayudame.

Actualizar
Estoy configurando el fondo de las filas en el adaptador:

 public int[] colors = new int[]{0xFFedf5ff, 0xFFFFFFFF}; public int colorPos; [...] colorPos = position % colors.length; row.setBackgroundColor(colors[colorPos]); 

ListViews de forma predeterminada no tiene un conjunto de choiceMode (está configurado en none ), por lo que la selección actual no se indica visualmente.

Para cambiar esto, solo necesita establecer el atributo choiceMode de su ListView a singleChoice .
Si desea un fondo personalizado para los elementos seleccionados en su lista, también debe establecer el atributo listSelector . Allí puede especificar no solo los colores, sino también los drawables (imágenes, capas / estado-dibujables).

  

Si no usa un ListView directamente, sino una ListActivity , estos atributos deben establecerse a partir del código, por lo que debe ampliar el método onCreate su actividad con estas líneas:

 getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); getListView().setSelector(android.R.color.darker_gray); 

Por lo tanto, si estaba usando un oyente de clic para cambiar el fondo de la fila seleccionada, elimínelo de su código y utilice el método adecuado desde arriba.

Responder a la actualización

Si configura el fondo de su método getView, en lugar de usar un color estático, aplique una lista de estado dibujable al fondo de la fila con duplicadoParentState establecido en verdadero. De esta forma cambiará su visualización en función del estado actual del elemento: normal, enfocado, presionado, etc.

En listview xml agrega el modo “singleChoice”

   

En el diseño del elemento de la lista, agrega

android: background = “? android: attr / activatedBackgroundIndicator

ejemplo

     

Una mejor forma es en su tema, @ drawable / list_selector

list_selector.xml:

     

luego establece el fondo para la raíz de tu list_row.xml android: background = “? android: attr / activatedBackgroundIndicator”

Pruebe esto en onListItemClick

 view.getFocusables(POSITION); view.setSelected(true); 

Destaca la selección.