Sql Android-如何对列表排序

Sql Android-如何对列表排序,sql,android,database,list,sorting,Sql,Android,Database,List,Sorting,我有一个用数据库中的数据填充的列表,现在我想按标题和日期对这些数据进行排序 我对Android编程还是新手,所以我不知道该怎么做,希望有人能帮我 以下是列表的填写方式: public void fillData() { // get all the data from database DBAdapter db = new DBAdapter(this); db.open(); mCategoriesCursor = db.getAllTitles();

我有一个用数据库中的数据填充的列表,现在我想按标题和日期对这些数据进行排序

我对Android编程还是新手,所以我不知道该怎么做,希望有人能帮我

以下是列表的填写方式:

    public void fillData()
{
    // get all the data from database
    DBAdapter db = new DBAdapter(this);
    db.open();

    mCategoriesCursor = db.getAllTitles();
        startManagingCursor(mCategoriesCursor);

    String[] from = new String[] { DBAdapter.KEY_TITLE, DBAdapter.KEY_DATE };
    int[] to = new int[] { R.id.text1, R.id.text2 };

    // Now create an array adapter and set it to display using our row
    SimpleCursorAdapter categories =
        new SimpleCursorAdapter(this, R.layout.categories_row, mCategoriesCursor, from, to);
    setListAdapter(categories);

    db.close();
}    
以下是sql:

    //---retrieves all the categories---
public Cursor getAllTitles() 
{
    return db.query(DATABASE_TABLE, new String[] {
            KEY_ROWID, 
            KEY_TITLE,
            KEY_DATE,
            KEY_EXTRA}, 
            null, 
            null, 
            null, 
            null, 
            null);
}

最好的方法是在从数据库中获取数据时对其进行排序。这是在创建光标时完成的(光标不是您发布的代码的一部分)。查询数据库时,可以指定排序顺序。

从数据库本身调用数据时,可能应该进行排序。要做到这一点,您需要填充用于提取此数据的任何查询方法的
Sort
参数

应该是这样的:

String sortStr = DBAdapter.KEY_TITLE + "asc, " + DBAdapter.KEY_DATE + " asc";
(此排序字符串将作为最后一个参数放入查询方法中)

如果您是以原始查询的形式执行此操作,则需要在查询的末尾附加一个完整的ORDERBY语句


如果你想了解更多细节,你必须向我们展示你的
DBAdapter
(特别是
getAllTitles方法
)的内部工作原理。

你问题的主题与问题本身无关?代码中没有If语句这里发生了一些奇怪的事情。。。标题错了。。改变了。。这个问题与“如果”无关。。课文中解释了这个问题。是的,效果很好。所以我找错地方了,呵呵。这很有效。我所做的是将“public Cursor getAllTitles()”中查询中的最后一个“null”更改为KEY_TITLE或KEY_DATA进行排序。在客户端排序将意味着服务器的工作量减少。这是Android。客户端是服务器。