2014-10-17 67 views

回答

7

至少有兩個選項。

首先,具體回答你關於在光標向後遍歷問題,你可以做到以下幾點:

for (cursor.moveToLast(); !cursor.isBeforeFirst(); cursor.moveToPrevious()) { 
    // get stuff from the cursor 
} 

其次,你可以從SQL填充光標以相反的順序,然後遍歷光標您的正常方法:

SQLiteDatabase db = myHelper.getWritableDatabase(); 
String[] columns = { MyDatabaseHelper.TEST_DATE, MyDatabaseHelper.SCORE }; 
String orderBy = MyDatabaseHelper.TEST_DATE + " DESC"; // This line reverses the order 
Cursor cursor = db.query(MyDatabaseHelper.TESTS_TABLE_NAME, columns, 
     null, null, null, null, orderBy, null); 

while (cursor.moveToNext()) { 
    // get stuff from the cursor 
} 

cursor.close(); 
db.close(); 
+0

第二個選項很好,但如果您將行數限制爲最後一個x,則不起作用。在這種情況下,選項1非常棒。 – 2017-06-19 16:52:01

5

您可以在最後一個位置開始遊標,並使用moveToPrevious()直到完成。

cursor.moveToLast(); 
do 
{ 
    // Stuff 
} 
while (cursor.moveToPrevious());