簡體   English   中英

如何從 Firebase 獲取所有日期並在日歷中標記日期

[英]How to get all the dates from Firebase and mark the dates in Calendar

在“Users Mood”父級的用戶 ID 下,每個鍵都有多個日期存儲。

"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);

請指導我解決這個問題。 謝謝你。

for(String date : dates){
    Calendar calendar = Calendar.getInstance(); // calendar must be here
    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);

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM