首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UnsupportedOperationException: CalendarView r

UnsupportedOperationException: CalendarView r
EN

Stack Overflow用户
提问于 2015-06-30 15:59:54
回答 2查看 1K关注 0票数 3

我在我的项目中有一个日期选择器的问题。我得到了错误:

代码语言:javascript
复制
 java.lang.UnsupportedOperationException: CalendarView does not exists for the new DatePicker
            at android.widget.DatePickerCalendarDelegate.getCalendarView(DatePickerCalendarDelegate.java:498)
            at android.widget.DatePicker.getCalendarView(DatePicker.java:377)
            at jadezabiore.spot.pl.jadezabiorepl.dialogs.DialogWithCalendar$1.onClick(DialogWithCalendar.java:56)
            at android.view.View.performClick(View.java:4780)
            at android.view.View$PerformClick.run(View.java:19866)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5254)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

仅适用于百合花系统。有什么办法解决这个问题吗?

编辑:这是有问题的代码:

代码语言:javascript
复制
 IDatePickerInFilter act = (IDatePickerInFilter) activity;
                datePicker.setCalendarViewShown(false);
                act.getDateDialog(new DateToTimestampConverter().getStringDateFromTimestamp(datePicker.getCalendarView().getDate()));
EN

回答 2

Stack Overflow用户

发布于 2016-04-26 12:05:42

为了给像我这样的人节省一些时间,@calvinfly提到:

代码语言:javascript
复制
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
    // do something for phones running an SDK before lollipop
    // e.g. datePicker.getCalendarView() ...
} else {
    // Do something for lollipop and above versions
}
票数 0
EN

Stack Overflow用户

发布于 2016-06-05 14:55:30

真正的问题是-如何从API 21获得所选的日期。Pre-21一种常见的方法是使用CalendarView,21+接口唯一可能的方式似乎是提供OnDateChangedListener in DataPicker init方法。

代码语言:javascript
复制
datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {
    @Override
    public void onDateChanged(DatePicker view, 
        int year, int monthOfYear, int dayOfMonth) {
        // do the date stuff
    }
});

错误消息也有点太隐蔽了--“新的DatePicker”指的不是一个新的DatePicker对象(所以你可以期望能够初始化视图),而是指自API21以来可用的DatePicker的新版本(当你请求CalendarView时会抛出一个错误)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31132711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档