Cambiar el color de fondo de un elemento en la Lista de actividades de Android onListItemClick

Sé que suena muy simple, y hay preguntas sobre esto. Pero nada de eso pudo resolver mi problema. Así que, aquí vamos:

Quiero cambiar el color de fondo de un elemento de la lista en unListActivity cuando el usuario hace clic en él, y vuelve a cambiarlo a su color original cuando el usuario vuelve a hacer clic (es decir, selecciona / deselecciona el aspecto del elemento)

Intenté usar getChildAt, funciona perfectamente si tengo todos los elementos visibles en una pantalla sin tener que desplazarme.

Código:

getListView().getChildAt(position).setBackgroundColor(Color.CYAN);

El problema comienza cuando tengo más elementos en la lista y el usuario tiene que desplazarse por ellos. Una vez que se cambia el fondo de un elemento, el color de fondo se muestra en los nuevos elementos visibles cuando me desplazo. También elgetChildAt(position) devolucionesnull (y por lo tanto unNullPointerException) al hacer clic de nuevo en el elemento.

¿Puede alguien ayudarme con un código simple que me ayude a cambiar el color de fondo de un elemento de la lista?

¡Gracias por adelantado!

Respuestas a la pregunta(6)

Su respuesta a la pregunta