是否可以按日期/时间对包含Uri的数组进行排序?
我的数组中的一个Uri看起来像:
content:// media / external / images / media / 65
我尝试过Collections.sort()
,但使用Uri []则无法实现
编辑: 我的Uri指向存储在设备上的图像。我想按日期和时间对图像进行排序,并显示在GridView中排序。
答案 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”) 这对所有人都有好处。
添加尝试和一些捕获块。