2010-11-30 5 views
3
//row --> 2 
int row = mCursor.getCount(); 
for (int i = 0; i < row; i++) { 
if (mCursor.moveToPosition(i)){ 
    int val = mCursor.getInt(mCursor.getColumnIndexOrThrow(UTILI_COLLOC_ID_UTILI)) 
} 
} 

Ich verstehe nicht, weil ich 2 Zeilen in meiner Abfrage habe. Aber wenn ich die zweite Reihe mit "mCursor.moveToPosition (i)" lesen will, so ist es falsch ... Warum?moveToNext() ist falsch

Antwort

1

Ich glaube, Sie können nur sicher

verwenden
while(mCursor.moveToNext()) { 
// code 
} 

statt für Looping

+0

Ich habe versucht, aber es ist das gleiche, es hat nicht funktioniert – douarbou

+2

Hmm ok, haben Sie sichergestellt, dass mCursor.getCount() ist wirklich> 0? –

1

Sie haben 2 Zeilen: 0. & 1st. Ich denke hier Ihr Problem ist, weil Sie zum nächsten Datensatz in einer Schleife bewegen & Cursor bereits zum letzten Datensatz bewegt. also gibst du FALSCH zurück.

Lösung: setzen mCursor.moveToPosition (1); außerhalb der for-Schleife.