我正在尝试按从最后一个到第一个的降序获取文件夹和文件。但我不想从 lastmodify(( 方法获取。因为万一我从任何文件夹中删除文件。首先获取该文件夹数据。这是我的模型班。
public class CallRecord implements Comparable<CallRecord>{
public String name;
public String time;
public String callType;
public String number;
public String filePath;
public String fileDuration;
public String folderName;
public String photoUri;
public boolean isStatic=false;
public String getPhotoUri() {
return photoUri;
}
public void setPhotoUri(String photoUri) {
this.photoUri = photoUri;
}
public String getFolderName() {
return folderName;
}
public void setFolderName(String folderName) {
this.folderName = folderName;
}
public boolean isStatic() {
return isStatic;
}
public void setStatic(boolean aStatic) {
isStatic = aStatic;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getCallType() {
return callType;
}
public void setCallType(String callType) {
this.callType = callType;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
public String getFileDuration() {
return fileDuration;
}
public void setFileDuration(String fileDuration) {
this.fileDuration = fileDuration;
}
@Override
public int compareTo(CallRecord callRecord) {
Long date1 = Long.valueOf(this.getTime().substring(1, 5));
Long date2 = Long.valueOf(callRecord.getTime().substring(1, 5));
return (date2>date1 ? -1 : (date2==date1 ? 0 : 1));
}
}
检查如何排序
电话簿联系人模型是模型类
排序名称 顺序 Z - A
想要更改排序顺序,更改对象比较。
Collections.sort(mArrayContactList, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
PhonebookContactModel p1 = (PhonebookContactModel) o1;
PhonebookContactModel p2 = (PhonebookContactModel) o2;
return p2.getName().compareToIgnoreCase(p1.getName());
}
});
这是以相反的顺序从最后一个到第一个获取文件夹的解决方案。这段代码对我有用
Arrays.sort(filesList, new Comparator<File>() {
@Override
public int compare(File object1, File object2) {
Date date=null,date1=null;
String dateString=object1.getName();
String dateString1=object2.getName();
dateString=dateString.replace("-","/");
dateString1=dateString1.replace("-","/");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
try {
date = sdf.parse(dateString);
date1=sdf.parse(dateString1);
} catch (ParseException e) {
e.printStackTrace();
}
Long dat =date.getTime();
Long dat2 = date1.getTime();
if (dat > dat2) {
return -1;
} else if (dat < dat2) {
return +1;
} else {
return 0;
}
}
});