0

我仍在尝试使用 calendarView 创建月视图。

我的问题是我不知道如何切换日历视图的月份。我想单击一个按钮,然后视图将显示下个月或上个月。该视图已经接地,因此您无法滚动浏览。

CalendarView cal = (CalendarView) findViewById(R.id.calendarMonthView);
cal.setEnabled(false);

我的想法是使用以下代码来做到这一点:

long  **dateOfLastMonth** = currentMonth - month; // pseudo code
CalendarView lastMonth = (CalendarView) findViewById(R.id.calendarMonthView);
lastMonth.setDate(**dateOfLastMonth**);

但我不知道dateOfLastMonth应该有什么价值。

那是正确的方法吗?dateOfLastMoth(不知道,因为它必须很长)应该有什么值?还有其他方法吗?

4

1 回答 1

2

尝试这个:

Calendar cal = Calendar.getInstance(); // Calendar object, with time set to now
cal.add(Calendar.MONTH, -1); // subtract a month
long dateOfLastMonth = cal.getTimeInMillis(); // get the milliseconds since 01/01/1970

如果您想在本月的 1 日执行此操作

cal.set(Calendar.DAY_OF_MONTH, 1);

我建议在减去一个月之前这样做,因为我不知道如果今天是本月的 31 日而上个月没有 31 日会发生什么。

Edit: It wouldn't be a problem if it's the 31st, I just tried it and the Calendar just sets to the 30th of the previous month

于 2014-07-31T13:56:41.790 回答