为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

动漫人物 2024-01-25 21:45:43
是否可以按日期/时间对包含 Uri 的数组进行排序?我的数组中的 Uri 如下所示:内容://媒体/外部/图像/媒体/65我已经尝试过Collections.sort(),但使用 Uri[] 是不可能的编辑: 我的 Uri 指向设备上存储的图像。我想按日期和时间对图像进行排序,并在 GridView 中显示排序后的图像。
查看完整描述

1 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

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


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();         

即使来自媒体存储的uris也为MediaStore.Images.Media.DATE_MODIFIED(“date_modified”)提供null,因此DocumentsContract.Document.COLUMN_LAST_MODIFIED(“last_modified”)这对所有人都有好处。


添加一个 try 和一些 catch 块。


查看完整回答
反对 回复 2024-01-25
  • 1 回答
  • 0 关注
  • 26 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信