java.util.ArrayList$ArrayListIterator.next android
当我点击“获取错误”按钮时,我使用“设置状态”方法从数据库进行了更新。在获取错误时,我已将该错误发送到数组列表,并发送到下一个活动 我是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
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");
}
}