我正在尝试从收件箱,已发送的项目和草稿中获取短信。我想对我的列表视图进行分页,因为我必须以页/块的形式获取记录。
我不熟悉sqlite,这是我理解android用于存储数据的数据库。有人能告诉我如何使用contentResolver.query限制我获取的记录数量?
还有什么方法可以将sqlite数据库文件拉到我的机器上并在本地浏览/查询它以试验或查看我机器上的数据?
还有其他更好的方法在android中实现分页吗?
由于
答案 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
并且不尝试将内容读入您自己的数据结构中。你试过这个吗?