排序在我的listview中显示的sqlite表在Android中不起作用

时间:2016-03-21 23:57:27

标签: android sqlite sorting listview

我使用以下内容根据他们的位置对玩家进行排序

public ArrayList<Player> getAllPlayers()
{
    ArrayList<Player> players = new ArrayList<Player>();
    String selectQuery = "SELECT  * FROM " + TABLE_PLAYERS + " ORDER BY "+"p_position"+" ASC";

    // Log.e(LOG, selectQuery);

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor c = db.rawQuery(selectQuery, null);

    // looping through all rows and adding to list
    if (c.moveToFirst()) {
        do {
            Player td = new Player();
            td.setPlayerId((c.getInt(c.getColumnIndex(TABLE_PLAYERS_ID))));
            td.setPlayerName((c.getString(c.getColumnIndex(TABLE_PLAYERS_NAME))));
            td.setPlayerPosition(c.getString(c.getColumnIndex(TABLE_PLAYERS_POSITION)));
            td.setPlayerNumber(c.getString(c.getColumnIndex(TABLE_PLAYERS_NO)));


            // adding to todo list
            players.add(td);
        } while (c.moveToNext());
    }

    return players;
}

我正在尝试对列表视图中显示的表进行排序,但排序没有效果,为什么会这样?

1 个答案:

答案 0 :(得分:0)

只要用户单击一个按钮就会调用它,然后我传递适当的变量,比如String SortBy,这是我要按其排序的列

public Cursor getSortedAllMyPlayers (int tm_id,String SortBy) {
    SQLiteDatabase db = this.getReadableDatabase();

    String buildSQL = "SELECT *, p_id as _id FROM " + STATS_TABLE_PLAYERS +" WHERE p_team_id="+tm_id+" ORDER BY "+SortBy+" ASC";

    //Log.d(TAG, "getAllData SQL: " + buildSQL);

    return db.rawQuery(buildSQL, null);
}