Android日历视图中的月份更改调用setOnDateChangeListener

时间:2014-02-07 21:58:55

标签: android calendar calendarview

我想在更改日期时调用asynctask。所以我使用以下代码,工作正常。但是这里发生了一些意想不到的事情。

CalendarView cv = (CalendarView) root.findViewById(R.id.calendarView1);
cv.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
        @Override
        public void onSelectedDayChange(CalendarView view, int year, int month,
                int dayOfMonth) {

            //Toast.makeText(getActivity(), mont + "/"+dayOfMonth + "/" + year,     Toast.LENGTH_SHORT).show();

             EventsTask gt = new EventsTask(getActivity(), eventsList);
             gt.execute();

        }
    });

但是,在日历视图中加载相同日期时,也会调用月份。 这里需要做些什么才能阻止这种情况发生。

1 个答案:

答案 0 :(得分:0)

为了后人,Djomla1989this thread中提出了解决此问题的方法。滚动到其他月份时会调用onSelectedDayChange,即使CalendarView的所选日期未更改而未点击日期也是如此。必须存储原始选定日期并确定是否实际点击了新日期。