通常當我遍歷遊標我使用類似以下內容:你如何遍歷光標以相反的順序
while (cursor.moveToNext()) {
// get stuff from the cursor
}
What's the best way to iterate an Android Cursor?擁有的各種選擇一個很好的討論。但是現在我需要從光標上的最後到第一個倒退。
那麼我該怎麼辦?
通常當我遍歷遊標我使用類似以下內容:你如何遍歷光標以相反的順序
while (cursor.moveToNext()) {
// get stuff from the cursor
}
What's the best way to iterate an Android Cursor?擁有的各種選擇一個很好的討論。但是現在我需要從光標上的最後到第一個倒退。
那麼我該怎麼辦?
至少有兩個選項。
首先,具體回答你關於在光標向後遍歷問題,你可以做到以下幾點:
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();
您可以在最後一個位置開始遊標,並使用moveToPrevious()直到完成。
cursor.moveToLast();
do
{
// Stuff
}
while (cursor.moveToPrevious());
第二個選項很好,但如果您將行數限制爲最後一個x,則不起作用。在這種情況下,選項1非常棒。 – 2017-06-19 16:52:01