Java 如何按日期/时间对Uri数组排序?
是否可以按日期/时间对包含Uri的数组进行排序 我的数组中的Uri如下所示: content://media/external/images/media/65 我尝试过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
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上获得文件创建日期。您只能获取上次修改的时间。