将历史存储在数据库中

时间:2012-01-14 17:49:37

标签: java android sqlite map cursor

我想将历史数据存储在sqlite数据库中。 最多20个"条目"应该得到保障。

添加新的entrie时,应删除最旧的,并在列表的开头添加新的entrie。 当调用histroy时,我希望它以相反的顺序显示(最新的条目优先)

据我所知,游标本身无法实现功能。我将需要将我调用的光标转换为另一种MAP类型。问题是哪一个以及如何实现这些行动。

1 个答案:

答案 0 :(得分:4)

那不应该那么难。您的历史记录表需要一个id列。使用游标和适配器时也必须使用它。将id列定义为auto incremented。因此,每次在表中插入新行时,新行都会自动获得一个唯一ID,该ID高于分配给之前插入的行的最后一个ID。

如果要向数据库添加新条目,则必须编写一个方法。在该方法中,您可以执行以下操作。

  1. 检查数据库表中的项目数。
    • 如果少于20个参赛作品则不做任何事。
    • 如果有多于或等于20个条目,则查询lowest id的行并删除它。
  2. 将新条目添加到数据库。它将自动获得表中所有行的最高id。
  3. 如果要使用游标显示列表中的条目,可以通过SQL命令order by定义返回行的顺序。