2010-11-30 2 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)) 
} 
} 

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

ответ

1

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

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

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

+0

Я пробовал это, но это то же самое, что он не работал – douarbou 2010-11-30 03:55:00

1

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

Решение: положить mCursor.moveToPosition (1); вне сторона для цикл.

Смежные вопросы