您好我已创建数据库并在列表视图中显示内容。我需要显示从最后到第一个记录的内容。这是我的代码:
Cursor c = db.rawQuery("select * from TABLE", null);
String[] array = new String[c.getCount()];
int i = c.getCount();
if (c.moveToLast())
{
do
{
String uname = c.getString(c.getColumnIndex("product_name"));
array[i] = uname;
i--;
}
while (c.moveToPrevious()) ;
}
我已将列“product_name”存储在字符串数组中。为了以相反的顺序打印列,这是我尝试过的代码。不幸的是,申请被停止谁能说我哪里出错?
答案 0 :(得分:0)
根据您要对项目进行排序的方式,您可以使用ORDER BY。
假设您要根据您可以使用的ID ORDER BY id DESC
从最后到第一个订购商品,这将按降序排序所有商品。然后,您可以像平常一样迭代它们。
答案 1 :(得分:0)
下次发布到Stackoverflow时,请包含调试信息(堆栈跟踪等)。也就是说,看起来你正在以糟糕的索引访问你的字符串。
Cursor c = db.rawQuery("select * from TABLE", null);
String[] array = new String[c.getCount()];
//Start i at c.getCount() - 1, indices are zero based.
int i = c.getCount() - 1;
if (c.moveToLast())
{
do
{
String uname = c.getString(c.getColumnIndex("product_name"));
array[i] = uname;
i--;
}
while (c.moveToPrevious()) ;
}