2012-12-17 86 views
1

我在json webservice中有11個項目。我在sqlite中存儲了詳細信息並從sqlite中顯示它們。所以我必須檢查網絡service.If id的SQLite和TAG_ID的ID是不相等的,那麼我必須更新自己的源碼細節和顯示他們,我使用循環只重複一次,而不是重複的Android中的項目數

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);    
          } 

        } 

這裏的問題是IAM能夠得到TAG_ID只有一次在for循環中,但是while得到所有項目,所以比較只進行一次而不是比較所有項目。 我該如何解決這個問題?

回答

1

通過調用cursors.moveToFirst()解決了它; while while循環

+0

我已經在你以前的問題中回答了這個問題,因爲沒有cursors.moveToFirst();不可能再次從光標循環 –

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

使用這樣