Android 使用LoaderCallbacks对ListView进行排序<;光标>;按日期

Android 使用LoaderCallbacks对ListView进行排序<;光标>;按日期,android,android-listview,android-cursorloader,android-loader,Android,Android Listview,Android Cursorloader,Android Loader,我正在尝试使用LoaderCallbacks创建一个Listview,我可以看到列表中的所有元素。但是现在我想对它进行排序,以便DB中最新的项是顶部的第一项。我在db中有一个Coulmn,名为COLUMN_MESSAGE_DATE,其中包含一个时间戳,我希望最新的行位于顶部。在onCreateLoader中,当我返回加载器时,我按此Coulmn排序,但最新的行仍然位于底部。。。。我错过什么了吗 public class MessageListFragment extends Fragmen

我正在尝试使用LoaderCallbacks创建一个Listview,我可以看到列表中的所有元素。但是现在我想对它进行排序,以便DB中最新的项是顶部的第一项。我在db中有一个Coulmn,名为COLUMN_MESSAGE_DATE,其中包含一个时间戳,我希望最新的行位于顶部。在onCreateLoader中,当我返回加载器时,我按此Coulmn排序,但最新的行仍然位于底部。。。。我错过什么了吗

   public class MessageListFragment extends Fragment implements LoaderCallbacks<Cursor>{
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args)
{
    // Create the Cursor that will take care of the data being displayed

    Log.d("TAG", "onCreateLoader...");
    return new CursorLoader(getActivity(),CONTENT_URI, null, null, null,DataBase.COLUMN_MESSAGE_DATE);//I thought this should sort the list by date...
}

@Override
public void onLoadFinished(Loader<Cursor> arg0, Cursor cursor)
{
    // Now Bind the data to the View
    Log.d("TAG", "onLoadFinished...ARG1= " + cursor);
    mCusrorAdapter = new CustomCursorAdapter(getActivity(), cursor);
    mListView.setAdapter(mCusrorAdapter);

}
公共类MessageListFragment扩展片段实现LoaderCallbacks{
@凌驾
公共加载器onCreateLoader(int-id,Bundle-args)
{
//创建光标以处理显示的数据
Log.d(“标记”,“onCreateLoader…”);
return new CursorLoader(getActivity(),CONTENT_URI,null,null,DataBase.COLUMN_MESSAGE_DATE);//我认为这应该按日期对列表排序。。。
}
@凌驾
public void onLoadFinished(加载器arg0,光标)
{
//现在将数据绑定到视图
Log.d(“标记”,“onLoadFinished…ARG1=“+光标”);
mCusrorAdapter=newcustomcursoradapter(getActivity(),cursor);
setAdapter(mCusrorAdapter);
}

}

虽然我不能确定没有看到您的数据,但时间戳通常是一个递增的值。也就是说,当前时间戳的值大于旧时间戳的值。默认排序顺序为升序。在这里,我相信您希望:

return new CursorLoader(getActivity(),CONTENT_URI, null, null, null,DataBase.COLUMN_MESSAGE_DATE + " DESC");

ContentProvider查询方法是否正确实现排序顺序?