【问题标题】:Is there any way to detect month change in android calendar view(i.e. when user changes calendar to another month)有没有办法检测android日历视图中的月份变化(即当用户将日历更改为另一个月份时)
【发布时间】:2017-08-21 15:30:09
【问题描述】:

我想在日历视图中显示月份,但我无法弄清楚。我试过了

calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {

        @Override
        public void onSelectedDayChange(CalendarView view, int year, int month,
                                        int dayOfMonth) {
            int d = dayOfMonth;
            int m = month;
            Log.d("month", "" + m);
            String curDate = String.valueOf(d);

        }
});

但它仅在用户点击月份时触发。我想要的是当用户更改我想要更改的月份的月份时(即日历视图中显示的月份。) 任何帮助,将不胜感激。提前致谢。

【问题讨论】:

    标签: java android android-calendar calendarview


    【解决方案1】:

    我认为从 Android 的默认 CalendarView 无法实现您想要的。为此,您需要实现自定义日历或任何其他提供此实现或提供侦听器或手势以在月份之间滑动的库。如果对您有帮助,请参考此链接: Material-CalendeView

    这是示例代码:

     MaterialCalendarView calendarView = new MaterialCalendarView(getActivity());
     calendarView.setOnMonthChangedListener(new OnMonthChangedListener() {
         @Override
         public void onMonthChanged(MaterialCalendarView widget, CalendarDay date) {
                //Do something like this
                Date date1 = date.getDate();
         }
     });
    

    希望对你有帮助。

    【讨论】:

    • 很好用。谢谢兄弟,我在这个问题上被困了 3 天。
    • 但是当我记录日期时我该如何解析它,它给了我这样的 CalendarDay{2017-8-1}
    • 检查我更新的答案。现在你可以用你的 Date 对象做任何事情。 :-D
    猜你喜欢
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    相关资源
    最近更新 更多