ich das gemeinsame Problem habe:Android Affe verursacht Adapter Benachrichtigung Ausnahme in android.widget.HeaderViewListAdapter
java.lang.IllegalStateException: The content of the adapter has changed but List
View did not receive a notification. Make sure the content of your adapter is no
t modified from a background thread, but only from the UI thread. [in ListView(2
131427573, class android.widget.ListView) with Adapter(class android.widget.Head
erViewListAdapter)]
Aber der Adapter ist nicht mein Code, aber in android.widget.HeaderViewListAdapter
Dies geschieht mit Jellybean.
Ich lese den Quellcode von HeaderViewListAdapter
, ListAdapter
und ListView
. Die IllegalStateException
ausgelöst wird, wenn die Elementanzahl in ListView
auf die Zählung durch die ListAdapter
bereitgestellt nicht gleich ist. In diesem Fall ist die ListAdapter
die HeaderViewListAdapter
. Der Wert HeaderViewListAdapter
s ist die Anzahl der ursprünglichen ListAdapter
, die vom Clientcode übergeben wurden, zuzüglich der Größe der Kopf- und Fußzeile.
ich durch meinen Code verfolgt. Der gesamte Zugriff auf die ListView
ist auf dem UI-Thread und wird immer von notifyDataSetChanged()
an den Adapter gefolgt. Ich benutze eine Fußzeile.
auftritt Dies auch im normalen Betrieb nicht. Liegt es an Monkey? Aber wie kann Monkey meine Variablen von anderen Threads modifizieren?
- Update nach mehr Affen Testing
entfernte ich die Fußzeile durch den Anruf zu addFooterView()
entfernen. Monkey löst die Ausnahme nicht mehr aus. Sollte ich den Anruf zu addFooterView()
irgendwann entfernen?
Bitte, bitte sagen Sie mir, dass Sie eine Lösung gefunden haben! – StErMi
Ich habe das gleiche Problem, aber es passiert auch außerhalb Affen Verwendung. Ich kann das Problem nicht reproduzieren und oft wiederhole Monkey ohne Fehler nach 20K Iterationen. – StErMi
Entschuldigung, ich habe keine Lösung gefunden. Allerdings habe ich dieses Problem nicht außerhalb des Affen gesehen. – mparaz