2

我正在构建一个 android 画廊,我想按文件名降序显示图像

但我不确定在 managedQuery 的最后一个字段中放什么:

String[] projection = {MediaStore.Images.Media._ID};
        // Create the cursor pointing to the SDCard
        cursor = managedQuery( MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                projection, // Which columns to return
                MediaStore.Images.Media.DATA + " like ? ",
                new String[] {"%LC/images%"},  
                MediaStore.Images.Media._ID + "dsc");// order here ?? help
4

2 回答 2

3
final String orderBy = MediaStore.Images.Media.DATE_ADDED;              
cursor = managedQuery(
               MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
               columns, null,
               null, orderBy + " DESC LIMIT 5");

"DESC" - descending order "Limit 5" - first five records, if you want all then discard from the query.

于 2012-07-05T12:12:44.093 回答
2

不完全确定,因为我不确定您使用的是哪种数据库。

但看起来你想要这条线:

MediaStore.Images.Media._ID + "dsc"

告诉查询按 _ID 降序排序。

第一个问题很简单。您需要在“_ID”和“dsc”之间留一个空格。它目前正在合并在一起,我认为“_IDdsc”并不是您真正想要的。所以改成

MediaStore.Images.Media._ID + "dsc"

由于您想按文件名排序,您只需要使用该列名而不是 _ID...除非 _ID 是文件名。

而且我还要提到...我认为大多数数据库使用“desc”而不是“dsc”...但这正是我所看到的,也许不是这里的情况。或者,如果您真的不想要反向排序,请将其取下。

于 2012-03-30T21:22:00.680 回答