@Override public void onLoadFinished(Loader<Cursor> loader, Cursor data) { if (data != null) { List<Image> images = new ArrayList<>(); int count = data.getCount(); if (count > 0) { data.moveToFirst(); do { String path = data.getString(data.getColumnIndexOrThrow(IMAGE_PROJECTION[0])); String name = data.getString(data.getColumnIndexOrThrow(IMAGE_PROJECTION[1])); long dateTime = data.getLong(data.getColumnIndexOrThrow(IMAGE_PROJECTION[2])); Image image = new Image(path, name, dateTime); images.add(image); if (!hasFolderGened) { // 获取文件夹名称 File imageFile = new File(path); File folderFile = imageFile.getParentFile(); Folder folder = new Folder(); folder.name = folderFile.getName(); folder.path = folderFile.getAbsolutePath(); folder.cover = image; if (!mResultFolder.contains(folder)) { List<Image> imageList = new ArrayList<>(); imageList.add(image); folder.images = imageList; mResultFolder.add(folder); } else { // 更新 Folder f = mResultFolder.get(mResultFolder.indexOf(folder)); f.images.add(image); } } } while (data.moveToNext()); mImageAdapter.setData(images); // 设定默认选择 if (resultList != null && resultList.size() > 0) { mImageAdapter.setDefaultSelected(resultList); } mFolderAdapter.setData(mResultFolder); hasFolderGened = true; } } }