android如何实现文件按时间先后顺序排列显示?
需求要求文件按照创建时间的先后顺序进行显示,而系统是安装文件大小顺序来显示,结果查了好一会儿资料都没找到相关资料,没辙了,只好反编译看了下文件管理器的APK,看他们是如何实现文件的显示方式。
关键代码如下:
File[] files =parentFile.listFiles(fileFilter);//通过fileFileter过滤器来获取parentFile路径下的想要类型的子文件
ArrayList<FileInfo> fileList = new ArrayList<FileInfo>();//将需要的子文件信息存入到FileInfo里面
for (int i = 0; i < files.length; i++) {
File file = files[i];
FileInfo fileInfo = new FileInfo();
fileInfo.name = file.getName();
fileInfo.path = file.getPath();
fileInfo.lastModified= file.lastModified();
fileList.add(fileInfo);
}
Collections.sort(fileList, new FileComparator());//通过重写Comparator的实现类FileComparator来实现按文件创建时间排序。
附:
public class FileComparator implements Comparator<FileInfo> {
public int compare(FileInfo file1, FileInfo file2) {
if(file1.lastModified < file2.lastModified)
{
return -1;
}else
{
return 1;
}
}
}
public FileFilter fileFilter = new FileFilter() {
public boolean accept(File file) {
String tmp = file.getName().toLowerCase();
if (tmp.endsWith(".mov") || tmp.endsWith(".jpg")) {
return true;
}
return false;
}
};
同理:可通过重写Comparator的实现类中的compare方法来实现按文件大小,文件名称等排列显示。