if(cursor.getCount() !=0)
{
if(cursor.moveToFirst())
{
do
{
pObj.gritSize=cursor.getString(cursor
.getColumnIndex("grit"));
pObj.test = cursor.getString(cursor
.getColumnIndex("sieve"));
pObj.number = cursor.getString(cursor
.getColumnIndex("number"));
pObj.micro = cursor.getString(cursor
.getColumnIndex("micro"));
pObj.ret = cursor.getString(cursor
.getColumnIndex("retention"));
pList.add(pObj);
}while(cursor.moveToNext());
}
}
return pList;
我有上面的代码从表中获取数据。我在pObj的每次迭代中得到正确的值。但是当我添加pList.add(pObj);每次,它都会覆盖前一个条目并添加值。因此,在迭代结束时,我将最后一行作为arraylist中的每个项目。请帮忙。
答案 0 :(得分:7)
为每次迭代创建一个新实例:
do {
pObj = new YourObjectType();
....
} while (...);
答案 1 :(得分:3)
你一遍又一遍地使用同一个物体。每次迭代时都尝试创建新对象。
在do
循环顶部初始化它。例如;
pObj = new YourClass();