如何按日期/时间对Uri数组进行排序?

时间:2019-11-03 17:57:29

标签: java android arrays sorting

是否可以按日期/时间对包含Uri的数组进行排序?

我的数组中的一个Uri看起来像:

  

content:// media / external / images / media / 65

我尝试过Collections.sort(),但使用Uri []则无法实现

编辑: 我的Uri指向存储在设备上的图像。我想按日期和时间对图像进行排序,并显示在GridView中排序。

1 个答案:

答案 0 :(得分:1)

您可以查询内容解析器的修改时间。

Uri uri = Uri.parse("content://media/external/images/media/65");

                String projection [] = { 
                          MediaStore.Images.Media.DATA
                        , MediaStore.Images.Media.DISPLAY_NAME
                        , MediaStore.Images.Media.SIZE
                        , MediaStore.Images.Media.MIME_TYPE
                        , MediaStore.Images.Media.DATE_MODIFIED
                        , DocumentsContract.Document.COLUMN_LAST_MODIFIED
                        };
                Cursor cursor = getContentResolver().query(uri, projection, null, null, null);

                if ( cursor==null)
                {   

                return; 
                }

                cursor.moveToFirst();

                String data        = cursor.getString(0);
                String displayName = cursor.getString(1);
                String size        = cursor.getString(2);
                String mimeType    = cursor.getString(3);
                String dateModified    = cursor.getString(4); // null
                String dateModified2    = cursor.getString(5);

                Toast.makeText(context,
                             "DISPLAY_NAME: " + displayName
                            + "\nDATA: " + data
                            + "\nSIZE: " + size
                                + "\nmimeType: " + mimeType
                                + "\n" +MediaStore.Images.Media.DATE_MODIFIED + ": " + dateModified
                                + "\n" +DocumentsContract.Document.COLUMN_LAST_MODIFIED + ": " + dateModified2
                            , Toast.LENGTH_LONG).show();
                cursor.close();         

即使来自媒体商店的uri也会为 MediaStore.Images.Media.DATE_MODIFIED(“修改日期”) 因此为DocumentsContract.Document.COLUMN_LAST_MODIFIED(“ last_modified”) 这对所有人都有好处。

添加尝试和一些捕获块。