Ошибка об Android-курсоре и listView - PullRequest
0 голосов
/ 23 февраля 2012

Я хочу добавить число во все списки, эти числа взяты из SQLite. Я использую цикл for, чтобы добавить их, и использую курсор для их получения. Вопрос в том, когда я удаляю один из них, кроме последнего, цикл for не может работать. Я обнаружил, что есть функция «isNull» для курсора, я хочу использовать ее, но она не работает.

    int itemNum=doListlist.getCount();
        for(int i = 0; i < itemNum; i++){
            if(cursor.isNull(i+1)==false){
                float num=Float.parseFloat(listsDbAdapter.fetchData(tableName, i+1).getString(3));
                float price=Float.parseFloat(listsDbAdapter.fetchData(tableName, i+1).getString(5));
                total+=num*price;
            }
            else {
            itemNum++;
            }
        }    

Если вы знаете причину, почему это всегда ошибка, пожалуйста, скажите мне, СПАСИБО !!!

Ответы [ 2 ]

0 голосов
/ 24 февраля 2012

попробуйте это `int itemNum = doListlist.getCount ();if (курсор! = ноль) {

        if (cursor.moveToFirst()) {



    for(int i = 0; i < itemNum; i++){

            float num=Float.parseFloat(listsDbAdapter.fetchData(tableName, i+1).getString(3));
            float price=Float.parseFloat(listsDbAdapter.fetchData(tableName, i+1).getString(5));


cursor.moveToNext();
            }
        }
    }

    cursor.close();
0 голосов
/ 24 февраля 2012

Курсор можно понимать как объект, который представляет часть таблицы базы данных в памяти (это представление памяти строится в соответствии с параметрами метода query).Таким образом, Курсор - это Таблица с количеством столбцов (вы определяете эти столбцы в методе query) и количеством строк в этой таблице.

При работе с Курсором вы последовательно читаете эти строки.Затем в этой строке вы оперируете значениями столбцов.

Оператор cursor.isNull(i+1) означает, что в текущей строке вы рассматриваете столбец i+1 и проверяете, является ли значение в этом столбце нулевым.Так что я думаю, что ваш цикл не является правильным.Вы должны перемещаться по курсору, используя moveToNext() методы курсора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...