2

我正在使用 SimpleCursorAdapter 用我的 SQLite 数据库中的数据填充 ListView。数据很好,但最新的条目总是插入 ListView 的底部,我想把它放在顶部。

我已经找到了这篇文章,但我不知道如何将它导入到我的项目中。目前我的 SQL 查询如下所示:

public Cursor fetchAllProjects() {

  Cursor mCursor = mDb.query(SQLITE_TABLE, new String[] {KEY_ROWID,
    KEY_ROUTERIP, KEY_PROJECTNAME, KEY_URL, KEY_CALIMERO}, 
    null, null, null, null, null);

  if (mCursor != null) {
   mCursor.moveToFirst();
  }
  return mCursor;
}

我必须更改什么才能按降序查看 ListView?或者我是否必须在我的 SimpleCursorAdapter 上进行更改?

谢谢!

4

3 回答 3

4

要反转顺序,我必须像这样更改我的 SQL 处理程序中的查询!

Cursor mCursor = mDb.query(SQLITE_TABLE, new String[] {KEY_ROWID, KEY_ROUTERIP, KEY_PROJECTNAME, KEY_URL, KEY_CALIMERO}, null, null, null,  KEY_PROJECTNAME+" DESC");
于 2012-09-18T15:35:55.960 回答
2

运行查询时,倒数第二个参数(此时为空)为Order By参数:https ://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#query%28boolean,%20java.lang .String,%20java.lang.String%5B%5D,%20java.lang.String,%20java.lang.String%5B%5D,%20java.lang.String,%20java.lang.String,%20java.lang .String,%20java.lang.String%29

您需要选择要排序的列,然后进行更改。为了安全起见,您可能应该以“正常”和“反向”顺序显式排序,以确保它按同一列排序。

于 2012-09-18T15:11:49.133 回答
0

如果您不想使用查询,这里有一个替代方案:

cursor.moveToLast();
do
{
    // your code
}
while (cursor.moveToPrevious());
于 2016-09-23T07:37:21.700 回答