Estoy usando un ciclo while para recorrer un cursor y luego generar los valores de longitud y latitud de cada punto dentro de la base de datos.Cursor while loop que devuelve todos los valores excepto el último
Por alguna razón, no devuelve el último (o el primero, según si uso Cursor.MoveToLast) el conjunto de valores de longitud y latitud en el cursor.
Aquí está mi código:
public void loadTrack() {
SQLiteDatabase db1 = waypoints.getWritableDatabase();
Cursor trackCursor = db1.query(TABLE_NAME, FROM, "trackidfk=1", null, null, null,ORDER_BY);
trackCursor.moveToFirst();
while (trackCursor.moveToNext()) {
Double lat = trackCursor.getDouble(2);
Double lon = trackCursor.getDouble(1);
//overlay.addGeoPoint(new GeoPoint((int)(lat*1E6), (int)(lon*1E6)));
System.out.println(lon);
System.out.println(lat);
}
}
A partir de este que estoy recibiendo:
04-02 15: 39: 07,416: INFO/System.out (10551): 3.0 04 -02 15: 39: 07.416: INFO/System.out (10551): 5.0 04-02 15: 39: 07.416: INFO/System.out (10551): 4.0 04-02 15: 39: 07.416: INFO/System.out (10551): 5.0 04-02 15: 39: 07.416: INFO/System.out (10551): 5.0 04-02 15: 39: 07.416: INFO/System.out (10551): 5.0 04-02 15: 39: 07.416: INFO/System.out (10551): 4.0 04-02 15: 39: 07.416: INFO/Sistema. out (10551): 4.0 04-02 15: 39: 07.416: INFO/System.out (10551): 3.0 04-02 15: 39: 07.416: INFO/System.out (10551): 3.0 04-02 15: 39: 07.416: INFO/System.out (10551): 2.0 04-02 15: 39: 07.416: INFO/System.out (10551): 2.0 04-02 15: 39: 07.493: INFO/Sistema. out (10551): 1,0 04-02 15: 39: 07,493: INFO/System.out (10551): 1,0
7 conjuntos de valores, donde debería estar recibiendo 8 conjuntos.
Gracias.
Asegúrate de usar try catch. – Pentium10
Es probable que desee algo para asegurarse de que hay un primer elemento, que probablemente no irá demasiado bien si alguna vez termina en uno vacío. – AaronM