Разве ты не пропускаешь последний результат всегда? Я думаю, вам нужно: while(!c1.isAfterLast())
, чтобы не пропустить последний элемент.
Также в этой строке есть синтаксическая ошибка:
toplist.add("Phrase: "+c1.getString(0)+" "+c1.getString(1);
вам не хватает символа ")".
Что касается вашего вопроса, вы не показываете достаточно кода, чтобы действительно понять, в чем проблема. Вы уверены, что не добавляете пустые значения в ArrayList в какой-либо другой точке вашего кода? Все, что вы показываете здесь, это то, как вы заполняете список массивов, а не как вы заполняете ListView. Покажите свой код ListView.
Также было бы довольно тривиально присоединить отладчик, чтобы увидеть, что ваш ArrayList содержит после этого шага, чтобы увидеть, есть ли ошибка в этой части вашего кода или где-то еще. Или в этом случае даже печать размера ArrayList в LogCat поможет отладить это.