2012-05-12 18 views
0

我使用光標找出最大ID號,然後我需要到該記錄的後面5。例如,我在id = 9,我想去id = 5,我該怎麼辦? 我試圖Android在記錄中向後移動

int position=cursor.getPosition(); 
cursor.moveToPosition(position-5); 

但是,它給出了一個錯誤

ID TITLE  FOLDER PARENT 
    1 folder1  1  0 
    2 item1  0  1 
    3 item2  0  1 
    4 folder2  1  1 
    5 item1  0  4 
    6 item2  0  4 
    7 folder3  1  4 
    8 item1  0  7 
    9 item2  0  7 

光標光標= db.rawQuery( 「SELECT ID,標題,文件夾,從父MYDATA WHERE」 + 「ID =(SELECT MAX(id)FROM mydata);「,null);

+0

請發佈錯誤logcat。如果'位置-5'大於零,那麼其他事情就是錯誤的。即使id = 9, – Sam

+0

位置總是返回0,並且(0-5)返回false值。 –

+0

「它給出一個錯誤」是沒有意義的,除非你提供錯誤。我們無法從這裏看到您的屏幕;如果您不提供這些信息,我們就不會用它來嘗試和幫助您。當你鍵入單詞「錯誤」時,你應該輸入的**接下來的事情**是你正在得到的確切錯誤,包括任何錯誤消息的確切文本。 –

回答

1

你可以試試:

cursor.moveToPosition(cursor.getCount() - 5); 

這裏假設你有光標至少5個項目。

更新

你只要求具有最高ID行的細節。

爲了讓您的原始請求嘗試此查詢:

SELECT id,title,folder,parent FROM mydata 

用上述代碼的建議。

+0

我仍然有同樣的錯誤。因爲,我的光標返回0. –

+0

光標的大小爲零?然後你的選擇語句找不到任何結果,開始挖掘或發佈它,如果你不知道。 – Sam

+0

Cursor cursor = db.rawQuery(「SELECT id,title,folder,parent FROM mydata WHERE」+「id =(SELECT MAX(id)FROM mydata);」,null);這是我的光標,位置編號始終是0. –