2012-03-30 61 views
2

我建立一個機器人庫,我想通過文件名如何排序,按降序排列的文件名與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://stackoverflow.com/questions/22705332/show-latest-on-top-in-a-list – Sun 2014-03-29 08:36:18

回答

2

不完全確定,因爲我不確定您使用的是哪種數據庫。

但它看起來像你想這行:

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

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」 - 第一個五年的記錄,如果你希望所有然後從查詢丟棄。