Проблема SQL-запросов Android - PullRequest
0 голосов
/ 30 декабря 2010

Я делаю стандартный запрос SQL в Android:

String selection = "SELECT phraseA, phraseB FROM TableXYZ";

        Cursor c1;

        c1 = myDbHelper.myDataBase.rawQuery(selection,null);

        c1.moveToNext();

        while(!c1.isLast()){

        toplist.add("Phrase: "+c1.getString(0)+" "+c1.getString(1);

        c1.moveToNext();
        }

        c1.close();

Таблица очень мала, и количество возвращаемых перемешиваний меньше 40. Toplist - это ArrayList. Он помещен в ListView. Насколько мне известно, это должно показать мне 40 строк. Теперь, что происходит, так это то, что строки показаны, но затем появляется другая загрузка пустых полей ListView. Понятия не имею как. Я думал, что моя итерация может быть неправильной, но я не могу придраться к ней.

1 Ответ

0 голосов
/ 30 декабря 2010

Разве ты не пропускаешь последний результат всегда? Я думаю, вам нужно: while(!c1.isAfterLast()), чтобы не пропустить последний элемент.

Также в этой строке есть синтаксическая ошибка:

toplist.add("Phrase: "+c1.getString(0)+" "+c1.getString(1);

вам не хватает символа ")".

Что касается вашего вопроса, вы не показываете достаточно кода, чтобы действительно понять, в чем проблема. Вы уверены, что не добавляете пустые значения в ArrayList в какой-либо другой точке вашего кода? Все, что вы показываете здесь, это то, как вы заполняете список массивов, а не как вы заполняете ListView. Покажите свой код ListView.

Также было бы довольно тривиально присоединить отладчик, чтобы увидеть, что ваш ArrayList содержит после этого шага, чтобы увидеть, есть ли ошибка в этой части вашего кода или где-то еще. Или в этом случае даже печать размера ArrayList в LogCat поможет отладить это.

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