Ich würde gerne eine große Anzahl von Add Delete Berechnungsarbeit auf den Worker-Thread, notifyDataSetChanged Arbeit auf dem ui-Thread setzen. Auf der Grundlage davon, um die java.lang.IllegalStateException zu vermeiden. Ausnahme wie folgt: java.lang.IllegalStateException: Der Inhalt des Adapters wurde geändert, aber ListView hat keine Benachrichtigung erhalten. Stellen Sie sicher, dass der Inhalt Ihres Adapters nicht von einem Hintergrundthread geändert wird, sondern nur vom UInthread. Stellen Sie sicher, dass Ihr Adapter notifyDataSetChanged() aufruft, wenn sich der Inhalt ändert.java.lang.IllegalStateException: Der Inhalt des Adapters wurde geändert, aber ListView hat keine Benachrichtigung erhalten.
Code Kurzschrift wie:
new Thread(){
@Override
public void run() {
for(int i=0; i<5000; i++){
mDatas.add(i);
}
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
mAdapter.notifyDataSetChanged();
}
});
}
}.start();
ich für eine lange Zeit auf Netto-bin auf der Suche. Aber keine Verwendung. Bitte helfen oder versuchen Sie, einige Ideen zu geben, wie dies zu erreichen ist.
Mögliche Duplikat http://stackoverflow.com/questions/3132021/android-listview-illegalstateexception-the-content-of-the-adapter-has-changed –
was ist mAcitvity? –
Sie können auch versuchen, Daten und * notifyDataSetChanged * im * UI-Thread * hinzuzufügen. –