У меня есть несколько хранилищ дат с каждым ключом под идентификатором пользователя в родительском настроении пользователя.
"Users Mood" : {
"K2ngvpioRUYF4bRM07Da5cbAjE53" : { //This is user ID
"-M3jNjCuGdMCwt1Czpwz" : { //This is key
"Date" : "2020-3-30",
"Scale" : "3"
},
"-M3jQWxm7z0EQYgkVenX" : { //This is key
"Date" : "2020-3-29",
"Scale" : "4"
},
"-M5hxn-rCJICUvRcMZJu" : { //This is key
"Date" : "2020-4-24",
"Scale" : "2"
}
}
}
Все даты (2020-3-30, 2020-3-29, 2020- 4-24) должны быть отмечены в календаре. Я использовал сторонний календарь из https://github.com/Applandeo/Material-Calendar-View
Ниже приведены методы, которые я придумала, но сохраненные даты не отмечены в календаре.
userMoodRef=FirebaseDatabase.getInstance().getReference().child("Users Mood").child(user.getUid());
CalendarView calendarView = (CalendarView) findViewById(R.id.calendar);
List<EventDay> events = new ArrayList<>();
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Calendar calendar = Calendar.getInstance();
ArrayList<String> dates= new ArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String date=ds.child("Date").getValue(String.class);
dates.add(date);
}
for(String date : dates){
String[] items1 = date.split("-");
int year= Integer.parseInt(items1[0]);
int month=Integer.parseInt(items1[1]);
int day=Integer.parseInt(items1[2]);
calendar.set(year,month,day);
events.add(new EventDay(calendar, R.drawable.ic_dot_blue_24dp));
calendarView.setEvents(events);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
userMoodRef.addListenerForSingleValueEvent(eventListener);
Пожалуйста, помогите мне решить эту проблему. Спасибо.