該清單應該以這樣的方式訂購,即該清單的日期應該接近今天的日期,如果它已經過了今天的日期日期和仍然是最近的,那麼它應該走到最後。 例如:按照最近或最近的日期先後順序獲取排序列表
日期 - 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())))' –