2017-11-28 1 views
0

Bitte helfen Sie mir, eine Fehlerbehebung für diesen Fehler zu finden, wo es in der Produktionsversion erscheint und ich nicht weiß, wo der Fehler genau aus dem folgenden Protokoll ist.IllegalStateException beim Aktualisieren von Adapterdaten

bekam ich den folgenden Protokollbericht von Crashlytics:

ListView.java line 1557 
android.widget.ListView.layoutChildren 

Fatal Exception: java.lang.IllegalStateException: The content of the 
adapter has changed but ListView did not receive a notification. Make sure 
the content of your adapter is not modified from a background thread, but 
only from the UI thread. [in ListView(2131558802, class 
android.widget.ListView) with Adapter(class 
android.widget.HeaderViewListAdapter)] 
    at android.widget.ListView.layoutChildren(ListView.java:1557) 
    at android.widget.AbsListView.onTouchEvent(AbsListView.java:3442) 
    at android.view.View.dispatchTouchEvent(View.java:7565) 
    . 
    . 
    . 
+3

Vielleicht haben Sie verpasst, die geänderten Daten zu melden 'adapter.notifyDataSetChanged();' –

Antwort

0

Sie können nur die Daten aus dem Hauptthread ändern.

Wenn Sie Daten in einem Hintergrundthread erhalten, warten Sie entweder auf das Ergebnis im Hauptthread, ändern Sie die Daten, und rufen Sie adapter.notifyDataSetChanged() auf, oder gehen Sie mithilfe eines Handlers zum Hauptthread aus Ihrem Hintergrundthread zurück und eine run() Methode.

Verwandte Themen