Так что мне удалось это сделать, вот как я это сделал ...
Сначала вы должны получить ваши дни в миллисекундах String, я создал этот метод для этого:
public String[] getPreviousFiveDays() {
Calendar cal = Calendar.getInstance();
String dates[] = new String[5];
cal.add(Calendar.DAY_OF_MONTH, 0 );
dates[0] = cal.getTimeInMillis()+"";
for (int i = 1; i < 5; i++){
cal.add(Calendar.DAY_OF_MONTH,-1);
dates[i] = cal.getTimeInMillis()+"";
}
return dates;
}
Затем, так как я хотел сохранить и изменить даты, я создал HashMap для объекта ..
private Map<String, Boolean> mChecks;
public Map<String, Boolean> getChecks() {
return mChecks;
}
public void setChecks(Map<String, Boolean> checks) {
mChecks = checks;
}
Затем, чтобы изменить даты, когда CheckBox был отмечен, я получил ключи следующим образом (поскольку я только что использовал последние пять ключей, я получил только те):
mChecks = new TreeMap<>(habitos.getChecks());
List<Map.Entry<String, Boolean>> entryList =
new ArrayList<>(mChecks.entrySet());
for (int x=0; x<5; x++) {
int y = 1 + x;
Map.Entry<String, Boolean> entry =
entryList.get(entryList.size() - y);
mDays[x] = entry.getKey();
}