Ändern Sie die Hintergrundfarbe eines Elements in Android ListActivity onListItemClick

Ich weiß, es klingt sehr einfach und es gibt Fragen dazu. Aber nichts davon konnte mein Problem lösen. Auf geht's:

Ich möchte die Hintergrundfarbe eines Listenelements in a ändernListActivity Wenn der Benutzer darauf klickt, und wenn er erneut klickt, wird die ursprüngliche Farbe wiederhergestellt.

Ich habe versucht, getChildAt zu verwenden. Es funktioniert einwandfrei, wenn alle Elemente auf einem Bildschirm angezeigt werden, ohne dass ein Bildlauf erforderlich ist.

Code:

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

Das Problem beginnt, wenn ich mehr Elemente in der Liste habe und der Benutzer durch sie scrollen muss. Sobald der Hintergrund für ein Element geändert wurde, wird die Hintergrundfarbe auf den neu sichtbaren Elementen angezeigt, während ich einen Bildlauf durchführe. Auch diegetChildAt(position) kehrt zurücknull (und daher aNullPointerException), wenn Sie erneut auf den Artikel klicken.

Kann mir jemand bitte mit einem einfachen Code helfen, der mir hilft, die Hintergrundfarbe eines Listenelements zu ändern?

Danke im Voraus!

Antworten auf die Frage(6)

Ihre Antwort auf die Frage