2013-08-29 3 views
-4
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의 각 항목으로 마지막 행을 가져옵니다. 도와주세요.Android arraylist 값이 중복됩니다.

답변

3

당신은 반복해서 같은 객체를 사용합니다. 반복 할 때마다 새 객체를 만들어보십시오.

귀하의 do 상단에 루프를 초기화하십시오. 예를 들어;

pObj = new YourClass();

7

각 반복에 대한 새로운 인스턴스 만들기 :

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