2012-03-30 9 views
1

Ich habe diesen Fehler in meiner Anwendung: Es ist ein ListView, mit einer langen Liste von Sachen. Ich habe eine Aktualisierungsschaltfläche, die nach dem Anklicken die Liste leeren wird, um sie mit neuen Ergebnissen zu füllen.ListView: Zurücksetzen des Inhalts beim Scrollen verursacht eine Ausnahme

Wenn ich auf die Schaltfläche zum Aktualisieren klicken, während das Scrollen immer noch aktiv ist (wegen des "Momentums" der Scroll), bekomme ich eine Ausnahme. Ich verstehe, warum die Rolle versucht, auf Gegenstände zuzugreifen, die nicht mehr da sind. Aber ich kann keine Lösung finden.

Ich habe versucht, die Rolle zu stoppen, aber ich finde keinen Weg, es zu tun, ich habe versucht, an den Anfang der Liste vor dem Zurücksetzen zurückzusetzen, aber ich bekomme immer noch einen Absturz. Wie kann ich es reparieren? Sicherlich, das ist ein häufiger Anwendungsfall. Ich glaube, jemand hatte dieses Problem bereits früher?

edit: Ausnahme ist IndexOutOfBoundsException: ungültige Index 20, Größe 0

+0

Was ist speziell die Ausnahme? – CommonsWare

+1

Sie haben Ihren Adapter wahrscheinlich nicht benachrichtigt, dass sich Daten geändert haben. Nachdem Sie Ihre Daten gelöscht haben (vermutlich eine Java-Liste) benachrichtigen Sie Ihren Adapter über mAdapter.notifyDataSetChanged() – 207

+0

Das ist korrekt, ich habe vergessen, notifyDataSetChanged() aufzurufen! Es ist jetzt behoben, danke. – erwan

Antwort

3

Sie wahrscheinlich benachrichtigen Sie keine Adapter, die Daten geändert hat. Nachdem Sie Ihre Daten gelöscht haben (vermutlich eine Java-Liste), benachrichtigen Sie Ihren Adapter über mAdapter.notifyDataSetChanged()

Verwandte Themen