java.util.ArrayList$ArrayListIterator.next android

java.util.ArrayList$ArrayListIterator.next android,java,android,database,sqlite,Java,Android,Database,Sqlite,当我点击“获取错误”按钮时,我使用“设置状态”方法从数据库进行了更新。在获取错误时,我已将该错误发送到数组列表,并发送到下一个活动 我是android编程新手 ImageButton ibAddMore = (ImageButton) findViewById(R.id.ibAddMore); ibAddMore.setOnClickListener(new View.OnClickListener() { @O

当我点击“获取错误”按钮时,我使用“设置状态”方法从数据库进行了更新。在获取错误时,我已将该错误发送到数组列表,并发送到下一个活动 我是android编程新手

 ImageButton ibAddMore = (ImageButton) findViewById(R.id.ibAddMore);
    ibAddMore.setOnClickListener(new View.OnClickListener() {
                                     @Override
                                     public void onClick(View v) {
                                         DataBaseHelper db = new DataBaseHelper(getApplicationContext());
                                         for (People people : alertList) {//In this Line getting error
                                             if (people.getStatus() == 1) {
                                                 db.setStatus(people.getId(), "0");
                                                 alertList.add(people);
                                             } else {
                                                 db.setStatus(people.getId(), "1");
                                             }
                                         }
                                         Intent intent = new Intent(AlertList.this, AlertListAll.class);
                                         startActivity(intent);
                                     }
                                 }

    );
设置状态方法

 public int setStatus(String peopleId, String status) {
    SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(STATUS, status);

    return sqLiteDatabase.update(TABLE_PEOPLE, values, ID + "=?",
            new String[]{peopleId});

}
例外情况:

java.util.ConcurrentModificationException
at java.util.AbstractList$SimpleListIterator.next(AbstractList.java:62)
at com.Jaydeep.alertme.activity.AlertList$1.onClick(AlertList.java:67)
at android.view.View.performClick(View.java:4240)
at android.view.View$PerformClick.run(View.java:17721)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5136)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)

不能直接修改正在循环的同一集合。但是你可以用一个简单的方法。例如

for(ListIterator iterator=alertList.ListIterator();iterator.hasNext();){//在此行中获取错误
People=iterator.next();
if(people.getStatus()==1){
db.setStatus(people.getId(),“0”);
迭代器。添加(人);
}否则{
db.setStatus(people.getId(),“1”);
}
}

您不能直接修改正在循环的同一个集合。但是你可以用一个简单的方法。例如

for(ListIterator iterator=alertList.ListIterator();iterator.hasNext();){//在此行中获取错误
People=iterator.next();
if(people.getStatus()==1){
db.setStatus(people.getId(),“0”);
迭代器。添加(人);
}否则{
db.setStatus(people.getId(),“1”);
}
}

迭代时,您正在向同一列表添加元素。它更像是java而不是android


顺便问一下,为什么要将相同的元素再次添加到正在迭代的列表中?

您正在迭代时将元素添加到相同的列表中。它更像是java而不是android


顺便问一下,为什么要将同一个元素再次添加到正在迭代的列表中?

我将您的代码中的一些错误如下:-java.util.AbstractList$SimpleListIterator.nextpost整个stacktracecheck my All trace@Blackbelt您还有
alertList.add(people)吗?我给你的代码放了一些错误如下:-java.util.AbstractList$SimpleListIterator.nextpost整个堆栈跟踪检查我的整个跟踪@Blackbelt你还有
alertList.add(人)
for (ListIterator<People> iterator = alertList.listIterator(); iterator.hasNext(); ) {//In this Line getting error
     People people = iterator.next();
     if (people.getStatus() == 1) {
        db.setStatus(people.getId(), "0");
        iterator.add(people);
     } else {
        db.setStatus(people.getId(), "1");
     }
}