2012-12-17 2 views
1

json webservice에서 11 개의 아이템을 가지고 있습니다. sqlite에 세부 사항을 저장하고 sqlite에서 표시하는 중입니다. IDS는 service.If 웹의 sqlite가 및 TAG_ID의 ID는 내가이안드로이드에서 아이템의 수를 반복하는 대신 루프를 한 번만 반복하십시오.

if(data_exist!=bookProduct.length()){ 
       Log.i("in update","m here"); 
       Cursor cursors = getRawEvents("select id from bcuk_book"); 
       try{ 
        for (int i = 0; i < bookProduct.length(); i++) { 
        JSONObject c = bookProduct.getJSONObject(i); 
        String Bid = c.getString(TAG_ID); 
        ArrayList<String> mapId = new ArrayList<String>(); 
         while(cursors.moveToNext()) 
         { 
           Log.e("cursors",cursors.getString(0)); 
           Log.i(Bid,Bid); 
           String csv = cursors.getString(0); 
           if(!cursors.getString(cursors.getColumnIndex(TAG_ID)).equalsIgnoreCase(c.getString(TAG_ID))) 
             { 
              Log.e("fas",Bid); 
             } 

             else 
             { 
              Log.e("enter","if case"); 
              cursors.moveToPosition(i); 
             } 
            } 
            mapId.add(TAG_ID); 
            Log.e(Bid,Bid);    
          } 

        } 

여기서 문제가 TAG_ID을 얻을 수 스피이다 사용하고 SQLite는 자신의 정보를 업데이트하고 그들을 표시가 동일하지 while 루프에서는 한 번만 수행되지만 모든 항목을 가져옵니다. 비교는 모든 항목을 비교하는 것이 아니라 한 번 수행됩니다. 어떻게 접근 할 수 있습니까?()를 호출하여 cursors.moveToFirst 그것을 해결이

답변

1

+0

cursors.moveToFirst();가 없으므로 이전 질문에서 이미 답변했습니다. 커서에서 다시 루프 할 수 없습니다. –

0
if (cursor.moveToFirst()){ 
    do { 
     Log.v("mylog", cursor.getString(0) + "," + cursor.getString(1) + "," + cursor.getString(2)); 
    } 
    while(cursor.moveToNext()); 
} 

사용; after while 루프

관련 문제