存储listview在数据库中显示位置

时间:2011-08-11 15:31:53

标签: android database sqlite listview

我创建了一个Android列表视图,允许用户重新排列其上每个项目的位置。但是,我无法弄清楚如何以最佳和最有效的方式将“更改”位置存储在数据库中,这样我才能通过显示id函数使用排序从数据库中检索游标?

有人可以帮我解决这个问题吗?感谢。

更新:

目前,我所想的是将项目位置存储在数据库中作为最后一个项目位置创建后,在更改后,我将更改数据库中所选项目的位置并运行一个循环来改变它下面的所有其他项目,增加1。

这种逻辑有意义吗?

1 个答案:

答案 0 :(得分:0)

您可以在名为ordinal(类型为整数)的数据库中创建一个列,以存储您希望项目在列表中显示的顺序。当用户重新排列列表时,相应地更改序号。

编辑:

在阅读完更新后,我认为这不会起作用,因为如果用户更改了您更新后的位置,该怎么办?

为什么不根据ListView中的位置更新每个项目的位置?

所以你的一个数据库方法是:

public boolean updateOrdinal(int itemId, int ordinal)

{

    ContentValues c = new ContentValues();


    c.put("ordinal", ordinal);


    return db.update("TableName", c, kID + "=" + itemId, null) > 0;

}

这将在用户“保存”列表后调用。当然循环必须为每个项目调用它。