2012-05-12 2 views
0

私は最大ID番号を見つけるためにカーソルを使用していますが、そのレコードの後方に5回移動する必要があります。たとえば、私はid = 9にあり、id = 5に行きたいです、どうすればいいですか? 私はAndroidはレコード間で逆戻りします

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

を試してみました。しかし、それは、カーソルcursor = db.rawQuery( "SELECT ID、タイトル、フォルダ、MYDATA FROM親" + 「ID =(SELECTエラーに

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 

を与えますMAX(id)FROM mydata); "、null);

+0

エラーlogcatを投稿してください。 'position - 5'が0より大きい場合、それ以外の何かが間違っています。 – Sam

+0

id = 9でも位置は常に0を返し、(0-5)はfalse値を返します。 –

+0

エラーが発生した場合を除き、「エラーが発生しました」は意味がありません。ここからあなたの画面を見ることはできません。あなたが私たちに情報を提供していない場合、私たちはそれを試してあなたを助けるために使用する必要はありません。 「エラー」という単語を入力すると、エラーメッセージの正確なテキストを含めて、あなたが入力しなければならない正確なエラーが入力されます。 –

答えて

1

あなたは試すことができます。これは想定してい

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

あなたは、カーソル内の少なくとも5つのアイテムを持っています。

更新

あなただけの最高のIDを持つ行の詳細を要求しています。

SELECT id,title,folder,parent FROM mydata 

上記のコードの提案では:あなたの元の要求は、このクエリを試し得るために

+0

私はまだ同じエラーがあります。カーソルは0を返します。 –

+0

カーソルのサイズはゼロですか?次にselectステートメントは結果を見つけられず、そこから掘り出したり、見つけられない場合は投稿したりします。 – Sam

+0

カーソルカーソル= db.rawQuery( "SELECT ID、タイトル、フォルダ、親FROM mydata WHERE" + "id =(SELECT MAX(id)FROM mydata);"、null);これは私のカーソルであり、位置番号は常に0です。 –

関連する問題