1

我在数据库项目中有 6 条记录。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");

结果:

在此处输入图像描述

4

3 回答 3

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();
}
于 2014-12-25T12:21:43.650 回答
0

循环没问题。在循环开始之前插入一行来控制您的计数变量。

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

如果它低于您的预期,请检查您的数据库是否存在错误。

于 2014-12-25T12:09:44.057 回答
0

我预计您的问题可能在于db.count_field,db.get_latdb.get_log方法。

那么您能否将它们添加到您的问题中。

于 2014-12-25T15:41:59.873 回答