Alterar a cor de fundo de um item no Android ListActivity onListItemClick

Eu sei que parece muito simples, e há perguntas sobre isso. Mas nada disso poderia resolver o meu problema. Aqui vamos nos:

Eu quero mudar a cor de fundo de um item da lista em umListActivity quando o usuário clica nele e o altera de volta para a cor original quando o usuário clica novamente (ou seja, selecione / deselecione o tipo de aparência do item)

Eu tentei usar getChildAt, ele funciona perfeitamente se eu tiver todos os itens visíveis em uma tela sem ter que rolar.

Código:

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

O problema começa quando tenho mais itens na lista e o usuário precisa rolar por eles. Quando o fundo de um item é alterado, a cor do plano de fundo é exibida nos itens recém-visíveis à medida que eu rola. Também ogetChildAt(position) devolvenull (e, portanto, umNullPointerException) ao clicar novamente no item.

Alguém pode me ajudar com um código simples que me ajude a mudar a cor de fundo de um item da lista?

Desde já, obrigado!

questionAnswers(6)

yourAnswerToTheQuestion