如何在Android中以相反的顺序显示数组

时间:2014-07-08 17:13:29

标签: android arrays string reverse

您好我已创建数据库并在列表视图中显示内容。我需要显示从最后到第一个记录的内容。这是我的代码:

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”存储在字符串数组中。为了以相反的顺序打印列,这是我尝试过的代码。不幸的是,申请被停止谁能说我哪里出错?

2 个答案:

答案 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()) ;
}