API 21 新 DatePicker 显示周数崩溃

Posted

技术标签:

【中文标题】API 21 新 DatePicker 显示周数崩溃【英文标题】:API21 new DatePicker ShowWeekNumber Crash 【发布时间】:2015-01-03 21:14:12 【问题描述】:

我正在使用新的 android 5.0 (API21) 测试我的应用,但在使用 CalendarView 时遇到错误

原因:java.lang.UnsupportedOperationException:新的 DatePicker 不存在 CalendarView
   在 android.widget.DatePickerCalendarDelegate.getCalendarView(DatePickerCalendarDelegate.java:501)
   在 android.widget.DatePicker.getCalendarView(DatePicker.java:365)

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

产生错误是因为我在 CalendarView 中隐藏了周数

picker.getCalendarView().setShowWeekNumber(false);

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

【问题讨论】:

我已经让用户报告了同样错误的崩溃,所以现在我将听取您的建议并删除隐藏周数的行。感谢您发布此信息! 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于API 21 新 DatePicker 显示周数崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Android API 21+ DatePicker 无法隐藏字段

如何在 twitter 引导日期选择器中显示周数

日期字段添加到新选项卡时未显示Datepicker

Android如何在片段中显示DatePicker?

CSS:JQuery datepicker 不显示图像

如何在 R 中解析年 + 周数?