2014-12-25 164 views
1

我在數據庫項目中有6條記錄。 For循環讀取每條記錄,然後檢查轉換爲動態數組的結果。 但是 For循環無法繼續直到結束! For循環檢查第三條記錄!for()循環不會持續

int count = db.count_field("location", "id"); 

    geoAttrs = new ArrayList<StructureGeo>(); 
    StructureGeo geo = new StructureGeo(); 

    for (int i = 0; i < count; i++) { 
     geo.lat = db.get_lat("location", i); 
     geo.lang = db.get_log("location", i); 
     geo.result = gps2m(latitude, longitude, geo.lat, geo.lang); 
     geoAttrs.add(geo); 
     Log.i("LOG", "Array Index #" + i + " = " + geoAttrs.get(i)); 
    } 
    db.close(); 
    } 

編輯:

敬酒代碼之後:

int count = db.count_field("location", "id"); 

和結果:

enter image description here

+0

帖子總計方法.. –

+0

循環前檢查您的計數大小。 – Razgriz

+0

請再檢查一次......我把照片放在烤麪包上 – Developer

回答

0

循環是好的。在循環開始之前插入一條控制您的count變量的行。

int count = db.count_field("location", "id"); 
    Log.d("LOG", "count equals " + count); 
geoAttrs = new ArrayList<StructureGeo>(); 
StructureGeo geo = new StructureGeo(); 

如果是低於您的預期,請檢查您的分貝的錯誤。

+0

請再次檢查...我把照片放在吐司代碼 – Developer

0

根據您的問題,你希望循環檢查3項,而不是完整6,這可以通過使用像這樣一個int變量來實現:

int count = db.count_field("location", "id"); 

geoAttrs = new ArrayList<StructureGeo>(); 
StructureGeo geo = new StructureGeo(); 
int counter = 0; 
for (int i = 0; i < count; i++) { 
     counter++; 
if(counter == 3){ 
    geo.lat = db.get_lat("location", i); 
    geo.lang = db.get_log("location", i); 
    geo.result = gps2m(latitude, longitude, geo.lat, geo.lang); 
    geoAttrs.add(geo); 
    Log.i("LOG", "Array Index #" + i + " = " + geoAttrs.get(i)); 
    break; // ends loop 
    } 


} 
db.close(); 
} 
+0

沒有我的朋友... 我想獲取所有記錄並記錄循環內要完成的所有命令。 但是上面的代碼中,只有三個是獲取記錄 – Developer

+0

好的,你的代碼很好,也許你的數據庫只有3個記錄的值。 – Fihox

+0

:(數據庫6條記錄,在第一篇文章中顯示圖片... – Developer

0

我期待您的問題可能出在db.count_fielddb.get_latdb.get_log方法。

所以你可以把它們添加到你的問題。