我正在使用新的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中不再警告周数,它们只是消失了,没有解释。
答案 0 :(得分:2)
可能导致此异常的一个问题是,如果您的DatePicker模式为android:datePickerMode="calendar"
,则DatePicker.getCalendarView将在后续API 21中导致异常,然后为了解决此问题,请将DatePicker的模式更改为{{ 1}}并且在java中你可以使用条件来处理大于或等于21的API
答案 1 :(得分:1)
我觉得你很困惑。 你的要求是“隐藏周数” 但实际上,在api21和21以下的日期选择器中都没有周数。
所以我建议你跳过“picker.getCalendarView()。setShowWeekNumber(false);” 并继续使用其余的代码。