如何使用manageQuery按降序排序文件名

时间:2012-03-30 19:32:45

标签: android android-gallery android-file

我正在建立一个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

2 个答案:

答案 0 :(得分: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” - 降序 “限制5” - 前五个记录,如果您希望所有记录都从查询中丢弃。

答案 1 :(得分:2)

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

但看起来你想要这一行:

MediaStore.Images.Media._ID +“dsc”

告诉查询按_ID降序排序。

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

MediaStore.Images.Media._ID +“dsc”

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

我还要提到......我认为大多数数据库使用“desc”代替“dsc”...但这正是我所看到的,也许不是这里的情况。或者如果你真的不想反向排序就把它取下来。