Android arraylist值是重复的

时间:2013-08-29 18:08:34

标签: java android sqlite arraylist

    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中的每个项目。请帮忙。

2 个答案:

答案 0 :(得分:7)

为每次迭代创建一个新实例:

do {
     pObj = new YourObjectType();
     ....
} while (...);

答案 1 :(得分:3)

你一遍又一遍地使用同一个物体。每次迭代时都尝试创建新对象。

do循环顶部初始化它。例如;

pObj = new YourClass();