2011-12-06 64 views
1

我是SQLite的新手,我不知道如何使用限制和偏移從數據庫中選擇數據限制數量,我的意思是我知道查詢短語,但如何在遊標中使用它,以便我可以將這些數據放入一個listview中?如何使用限制和偏移來翻頁數據

目前我使用下面的代碼從數據庫中查詢數據,並顯示在列表視圖,但似乎我查詢了太多數據,一個查詢和SQLite的不成長,所以我想將查詢到的一些小一些,一次做,有人建議我嘗試限制和抵消,但我google了一下,在互聯網上真的沒有太多。

有人會爲我提供指導嗎?一個例子或tutoral,隨便什麼都行,THX

channellist = (ListView) findViewById(R.id.Channel); 

     mDB = new ChannelDB(this); 

     String[] columns = {mDB.KEY_ID, mDB.KEY_POSTER, mDB.KEY_CHANNEL, mDB.KEY_PATH, mDB.KEY_DBLINK}; 
     String table = mDB.channelS_TABLE; 

     c = mDB.getHandle().query(table, columns, null, null, null, null, null); 

     startManagingCursor(c); 

     SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
       R.layout.channelview, 
       c, 
       new String[] {mDB.KEY_POSTER, mDB.KEY_CHANNEL, mDB.KEY_DBLINK}, 
       new int[] {R.id.poster, R.id.channel, R.id.douban}); 

     adapter.setViewBinder(new ChannelViewBinder(this)); 

     channellist.setAdapter(adapter); 

回答

3

與數字傳遞的最後一個參數爲字符串像你需要獲取10個,那麼你可以像這樣

c = mDB.getHandle().query(table, columns, null, null, null, null, null,"10"); 

更多參考見How to use the LIMIT argument in an SQLite Query with Android

+0

嗨,@ Pratik,我試過這個,但我得到了一個SQLite異常**第一個ORDER BY項超出範圍 - 應該在1到5之間:編譯時:SELECT _id,poster,channel,path,dblink FROM渠道ORDER BY 10 **任何想法? – oratis

+0

你錯過了一個null;) – Guillaume

+0

是的,thx,但我仍然有一個單頁的列表,但並非所有的項目加載,所以我應該創建多個遊標並將它們一起運行? – oratis

相關問題