API 21新的DatePicker显示周数崩溃

时间:2014-11-07 06:08:21

标签: java android datepicker week-number calendarview

我正在使用新的Android 5.0(API21)测试我的应用,但是使用CalendarView时出现错误

Caused by: java.lang.UnsupportedOperationException: CalendarView does not exists for the new DatePicker
   at android.widget.DatePickerCalendarDelegate.getCalendarView(DatePickerCalendarDelegate.java:501)
   at android.widget.DatePicker.getCalendarView(DatePicker.java:365)

令我惊讶的是,错误不是因为NEW API21 DatePicker中没有CalendarView,事实上, API21中没有DatePicker,只有CalendarView。

错误的产生是因为我在日历视图中隐藏了周数

picker.getCalendarView().setShowWeekNumber(false);

此指令抛出 UnsupportedOperationException ,在CalendarView中不再警告周数,它们只是消失了,没有解释。

2 个答案:

答案 0 :(得分:2)

可能导致此异常的一个问题是,如果您的DatePicker模式为android:datePickerMode="calendar",则DatePicker.getCalendarView将在后续API 21中导致异常,然后为了解决此问题,请将DatePicker的模式更改为{{ 1}}并且在java中你可以使用条件来处理大于或等于21的API

答案 1 :(得分:1)

我觉得你很困惑。 你的要求是“隐藏周数” 但实际上,在api21和21以下的日期选择器中都没有周数。

所以我建议你跳过“picker.getCalendarView()。setShowWeekNumber(false);” 并继续使用其余的代码。