Android SQL查询问题

时间:2010-12-30 16:44:47

标签: java sql android sqlite

我正在Android中执行标准SQL查询:

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();

表非常小,返回的stirngs数小于40. Toplist是一个ArrayList。它被放入ListView.To据我所知,这应该显示我40个字符串。现在,会发生什么是显示字符串,然后出现另一个空的ListView字段。我不知道怎么做。我认为我的迭代可能是错误的,但我无法找到它的错误。

1 个答案:

答案 0 :(得分:0)

你不是总是跳过最后的结果吗?我认为您需要:while(!c1.isAfterLast())以防止跳过最后一项。

此行还有语法错误:

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

你错过了一个“)”字符。

至于你的问题,你没有显示足够的代码来真正看出问题所在。您确定您没有在代码中的其他位置向ArrayList添加任何空值吗?您在此处显示的是如何填充数组列表,而不是填充ListView的方式。显示ListView代码。

在此步骤之后附加调试器以查看ArrayList包含的内容,以查看错误是在代码的这一部分还是其他地方,这也是相当简单的。或者就此而言,即使将ArrayList大小打印到LogCat也有助于调试它。