Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何按日期/时间对Uri数组排序?_Java_Android_Arrays_Sorting - Fatal编程技术网

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

Java 如何按日期/时间对Uri数组排序?,java,android,arrays,sorting,Java,Android,Arrays,Sorting,是否可以按日期/时间对包含Uri的数组进行排序 我的数组中的Uri如下所示: content://media/external/images/media/65 我尝试过Collections.sort(),但在Uri[]中无法实现 编辑: 我的Uri指向存储在设备上的图像。我想按日期和时间对图像进行排序,并在GridView中显示排序后的图像。您可以在内容解析器中查询修改后的时间 Uri uri = Uri.parse("content://media/external/images/media

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

我的数组中的Uri如下所示:

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

我尝试过
Collections.sort()
,但在Uri[]中无法实现

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

您可以在内容解析器中查询修改后的时间

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\u MODIFIED(“DATE\u MODIFIED”) 因此文档contract.Document.COLUMN\u LAST\u MODIFIED(“LAST\u MODIFIED”) 这对所有人都有好处


添加一个try和一些catch块。

你所说的日期/时间是什么意思?
Uri
没有“日期/时间”。它可能指向可能具有某种时间戳的内容。你需要更详细地解释你指的是什么“日期/时间”。你指的是文件创建日期、上次文件访问日期、文件修改日期吗?@KrystianG我指的是文件创建日期。如果你使用的API超过26(Android 8.0),你就无法在Android上获得文件创建日期。您只能获取上次修改的时间。