2

SimpleCursorAdapter を使用して、ListView に SQLite データベースのデータを入力しています。データは問題ありませんが、最新のエントリは常に 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

クエリを実行するとき、最後から 2 番目のパラメーター (現時点では null) が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 に答える