2010-04-22 61 views
4

我試圖從收件箱,發送的項目和草稿中獲取短信。我想爲我的列表視圖做一個分頁,因爲我必須以頁/塊的形式獲取記錄。在Android中獲取的限制記錄(Sqlite數據庫)

我不熟悉sqlite,這是我明白android用來存儲數據的數據庫。有人能告訴我如何通過使用contentResolver.query限制我獲取的記錄數量?

還有什麼辦法將sqlite數據庫文件拖到我的機器上,並在本地瀏覽/查詢它以試驗或在我的機器上查看數據?

是否有任何其他更好的方法來實現分頁在android?

感謝

回答

1

似乎沒有什麼辦法來限制您的結果從SmsProvider。但是,如果您使用CursorAdapter,並且不嘗試將內容讀取到您自己的數據結構中,則不應該真的需要。你試過這個嗎?

+0

請你指點一下如何使用CursorAdapter的一些例子? – Priyank 2010-04-23 04:02:45

+0

這有一個很好的http://thinkandroid.wordpress.com/2010/01/11/custom-cursoradapters/ – zapping 2010-04-23 06:06:06

8

按照Sqlite website,您可以在查詢中使用LIMIT ... OFFSET ...條款:

+1

這也是我使用的 - LIMIT。 SELECT * from mytable LIMIT 100 – 2010-04-22 14:36:35

1

拉你的數據庫查看,做它的一個副本,在SD卡上,然後用adp拉來獲得它。

5

對於任何人碰到這個答案尋找一種方式來使用LIMIT條款與OFFSET磕磕絆絆,我從this bug發現,Android使用下面的正則表達式來解析查詢的限制子句:

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

LIMIT子句用下面的sLimitPattern檢查。

private static final Pattern sLimitPattern = Pattern.compile("\\s*\\d+\\s*(,\\s*\\d+\\s*)?"); 

注意,正則表達式不接受格式offsetNumber,limitNumber即使它不直接接受OFFSET聲明。

+0

很好的發現! :)這肯定會有幫助。 – Priyank 2011-03-16 05:52:50

相關問題