如何排序,按降序排列的文件名与manageQuery

问题描述:

我建立一个机器人库,我想通过文件名如何排序,按降序排列的文件名与manageQuery

降序排列来显示图像,但我不确定要放什么东西在最后一个字段我的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 
+0

请检查这个问题:http://*.com/questions/22705332/show-latest-on-top-in-a-list – Sun 2014-03-29 08:36:18

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

但它看起来像你想这行:

MediaStore.Images.Media._ID +“DSC”

告诉查询通过_ID在降序排序。

第一个问题很简单。您需要“_ID”和“dsc”之间的空格。它目前正在联合在一起,我不认为“_IDdsc”真的是你想要的。因此,将其更改为

MediaStore.Images.Media._ID +“DSC”

既然你想通过文件名进行排序,你只需要使用列名,而不是_ID ......除非_ID是文件名。

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

+0

谢谢..只是让你知道这不是一个数据库,而是一个文件夹Android设备的SD卡上的图像。我的应用程序有一个自定义相机,将图片保存到SD卡上的文件夹中,文件名由时间戳记生成,因此按照下达顺序按名称排列它们应该先拍下最后一张照片 – erik 2012-03-31 01:49:32

+1

我想仔细检查并确认它应该用“DESC”来降序排序。 – Jeff 2012-03-31 03:24:49

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” - 第一个五年的记录,如果你希望所有然后从查询丢弃。