限制在Android中获取的记录(Sqlite数据库)

时间:2010-04-22 14:08:06

标签: sql android sqlite pagination

我正在尝试从收件箱,已发送的项目和草稿中获取短信。我想对我的列表视图进行分页,因为我必须以页/块的形式获取记录。

我不熟悉sqlite,这是我理解android用于存储数据的数据库。有人能告诉我如何使用contentResolver.query限制我获取的记录数量?

还有什么方法可以将sqlite数据库文件拉到我的机器上并在本地浏览/查询它以试验或查看我机器上的数据?

还有其他更好的方法在android中实现分页吗?

由于

4 个答案:

答案 0 :(得分:8)

根据Sqlite website,您可以在查询中使用 LIMIT ... OFFSET ... 子句:

答案 1 :(得分:5)

对于任何想要找到LIMIT OFFSET private static final Pattern sLimitPattern = Pattern.compile("\\s*\\d+\\s*(,\\s*\\d+\\s*)?"); 条款使用offsetNumber,limitNumber的方法的人来说,我发现this bug Android使用以下正则表达式来解析限制条款查询:

  

在framework / base / core / java / android / database / sqlite / SQLiteQueryBuilder.java中:

     

使用以下sLimitPattern检查LIMIT子句。

OFFSET

请注意,正则表达式确实接受格式{{1}},即使它不直接接受{{1}}语句。

答案 2 :(得分:1)

要拉取数据库进行查看,请在SD卡上复制一份,然后使用adp pull来获取它。

答案 3 :(得分:1)

似乎没有任何方法可以限制SmsProvider的结果。但是,您应该不需要,因为您使用CursorAdapter并且不尝试将内容读入您自己的数据结构中。你试过这个吗?