该清单应该以这样的方式订购,即该清单的日期应该接近今天的日期,如果它已经过了今天的日期日期和仍然是最近的,那么它应该走到最后。 例如:按照最近或最近的日期先后顺序获取排序列表
日期 - 2017年3月10日2017年12月9日20/10/2017 21/10/2017
认为这是从数据库,检索时的日期列表添加到自定义适配器将以相同的顺序显示列表视图项目。 但我希望他们可以订购(考虑到今天的日期 - 18/10/2017)
20/10/2017 21/10/2017 (即将推出日期中的前两项结束后,现在来传递 日期列表)2017年3月10日2017年12月9日
下面是使用的类,
AssignmentUpload.java
public AssignmentUpload(String fileName, String url, String year, String title,
String instructions, AttendanceDate attendanceDate, String subjectName, String uploadedBy) {
this.fileName = fileName;
this.url = url;
this.year = year;
this.title = title;
this.instructions = instructions;
this.attendanceDate = attendanceDate;
this.subjectName = subjectName;
this.uploadedBy = uploadedBy;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getInstructions() {
return instructions;
}
public void setInstructions(String instructions) {
this.instructions = instructions;
}
public AttendanceDate getAttendanceDate() {
return attendanceDate;
}
public void setAttendanceDate(AttendanceDate attendanceDate) {
this.attendanceDate = attendanceDate;
}
public String getSubjectName() {
return subjectName;
}
public void setSubjectName(String subjectName) {
this.subjectName = subjectName;
}
public String getUploadedBy() {
return uploadedBy;
}
public void setUploadedBy(String uploadedBy) {
this.uploadedBy = uploadedBy;
}}
AttendanceDate.java用于日期
public class AttendanceDate implements Serializable{
private int day, month, year;
public AttendanceDate() {
}
public AttendanceDate(int day, int month, int year) {
this.day = day;
this.month = month;
this.year = year;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
this.month = month;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
@Override
public String toString() {
return "AttendanceDate{" +
"day=" + day +
", month=" + month +
", year=" + year +
'}';
}}
FacultyViewAssignmentActivity.java有loadAssignmentList()函数将被编辑
private void loadAssignmentsList() {
pDialog.setTitle("Searching...");
pDialog.setMessage("Enjoy Assignments... :)");
pDialog.show();
reference.child("assignments")
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
assignmentUploadList.clear();
for (DataSnapshot ps : dataSnapshot.getChildren()) {
for (DataSnapshot ds : ps.getChildren()) {
assignmentYear.setSubjectName(ds.getValue().toString());
for (DataSnapshot dss : ds.getChildren()) {
AssignmentUpload a = dss.getValue(AssignmentUpload.class);
assignmentUploadList.add(a);
}
}
}
assAdapter = new FacultyViewAssignmentAdapter(FacultyViewAssignmentActivity.this, assignmentUploadList);
recyclerView.setAdapter(assAdapter);
pDialog.dismiss();
}
@Override
public void onCancelled(DatabaseError databaseError) {
pDialog.dismiss();
}
});
}
都坚持这个,因为很长一段时间,任何帮助,将不胜感激。 .. 谢谢!
你可以考虑订购使用相当或比较 –
您的清单,我不能,因为最新的数据是不是在日期格式,它是简单地分为整数作为INT日,月整型,诠释一年.. ..如果你可以用比较的和比较,那么请...但是,当我尝试这样做,月和日是进入升序排列,但他们的组合是越来越洗牌给我一个更好的办法.. – Karan
你能不能创建'LOCALDATE的从这些数字?它应该有工厂方法。然后你可以比较它们。沿着uploads.sort的'东西线(Comparator.comparing(upload-> createLocalDateFromAttDate(upload.getAttendanceDate())))' –