moveToNext () является ложным - PullRequest
3 голосов
/ 30 ноября 2010
//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))
 }
}

Я не понимаю, потому что в моем запросе есть 2 строки.Но когда я хочу прочитать вторую строку с помощью "mCursor.moveToPosition (i)", то это ложно ... Почему?

Ответы [ 2 ]

1 голос
/ 30 ноября 2010

У вас есть 2 строки: 0 и 1. Я думаю, что здесь ваша проблема в том, что вы переходите к следующей записи в цикле, а курсор уже перемещен к последней записи. так что он вернет вам ЛОЖЬ.

Решение: поместите mCursor.moveToPosition (1); вне цикла for.

1 голос
/ 30 ноября 2010

Я думаю, вы можете просто безопасно использовать

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

вместо зацикливания

...