android - ConcurrentModificationException in AsyncTask -


i have problem exception inside onpostexecute() method during loop. used foreach loop, read should use listiterator. hopelessly didn't fixed it. fragment of critical code:

public void search(final string query) {         this.query = (!query.trim().isempty()) ? query : null;         loaditemstask2 = new asynctask<void, void, void>() {              @override             protected void doinbackground(void... params) {                 ...             }              @override             protected void onpostexecute(void result) {                 progress.setvisibility(view.gone);                 lview.setvisibility(view.visible);                  adapter.clear();                  (listiterator<loyaltyprogramslistitem> iter = searchitems.listiterator(); iter.hasnext();) {                     loyaltyprogramslistitem si = iter.next();                     adapter.add(si);                 }                  adapter.notifydatasetchanged();             }          };         loaditemstask2.execute();      } 

exception throws in line:

for (listiterator<loyaltyprogramslistitem> iter = searchitems.listiterator(); iter.hasnext();) { 

logcat:

08-08 15:26:40.069  18277-18277/******* e/androidruntime: fatal exception: main         java.util.concurrentmodificationexception         @ java.util.abstractlist$simplelistiterator.next(abstractlist.java:64)         @ pl.freebee.android.ui.fragments.loyaltyprogramslistfragment$4.onpostexecute(loyaltyprogramslistfragment.java:328)         @ pl.freebee.android.ui.fragments.loyaltyprogramslistfragment$4.onpostexecute(loyaltyprogramslistfragment.java:289)         @ android.os.asynctask.finish(asynctask.java:417)         @ android.os.asynctask.access$300(asynctask.java:127)         @ android.os.asynctask$internalhandler.handlemessage(asynctask.java:429)         @ android.os.handler.dispatchmessage(handler.java:99)         @ android.os.looper.loop(looper.java:123)         @ android.app.activitythread.main(activitythread.java:3687)         @ java.lang.reflect.method.invokenative(native method)         @ java.lang.reflect.method.invoke(method.java:507)         @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:867)         @ com.android.internal.os.zygoteinit.main(zygoteinit.java:625)         @ dalvik.system.nativestart.main(native method) 

my solution: making copy of array before loop , inside loop operate on copy.


Comments

Popular posts from this blog

matlab - Deleting rows with specific rules -

jquery - How would i go about shortening this code? And to cancel the previous click on click of new section? -