当选择的日期超出最小或最大日期时,DatePicker 会崩溃。安卓5.1

2024-03-12

我有这个代码:

public void onDateSet( DatePicker view, int year, int monthOfYear, int dayOfMonth )
{
    Log.v( "DateRangePicker", "Date CHANGED" );
}

...

Calendar calender = Calendar.getInstance();
calender.setTime( new Date() );
DatePickerDialog dialog = new DatePickerDialog( 
        getActivity(), 
        this,
        calender.get( Calendar.YEAR ), calender.get( Calendar.MONTH ),
        calender.get( Calendar.DAY_OF_MONTH ) );

DatePicker picker = dialog.getDatePicker();
picker.setMaxDate( System.currentTimeMillis() );
dialog.show();

I saw a post https://stackoverflow.com/questions/13746035/android-4-2-datepicker-crashes-when-mindate-is-set-and-selected-date-before-mi帮助 android 4.2 解决此类问题,似乎在以后的版本中得到了解决。但就我而言并非如此。

当我将月份滚动到(九月)时,它会出现下面的崩溃。我不确定,但我认为九月不应该在那里。

  FATAL EXCEPTION: main
  Process: com.hizzo.counter, PID: 23871
  java.lang.IllegalArgumentException: Time not between Mon Jan 01 00:00:00 AMT 1900 and Wed Aug 26 11:49:46 AMT 2015
        at android.widget.CalendarViewLegacyDelegate.goTo(CalendarViewLegacyDelegate.java:775)
        at android.widget.CalendarViewLegacyDelegate.setDate(CalendarViewLegacyDelegate.java:592)
        at android.widget.CalendarView.setDate(CalendarView.java:495)
        at android.widget.DatePicker$DatePickerSpinnerDelegate.updateCalendarView(DatePicker.java:1069)
        at android.widget.DatePicker$DatePickerSpinnerDelegate.access$800(DatePicker.java:536)
        at android.widget.DatePicker$DatePickerSpinnerDelegate$1.onValueChange(DatePicker.java:642)
        at android.widget.NumberPicker.notifyChange(NumberPicker.java:1888)
        at android.widget.NumberPicker.setValueInternal(NumberPicker.java:1674)
        at android.widget.NumberPicker.scrollBy(NumberPicker.java:1137)
        at android.widget.NumberPicker.computeScroll(NumberPicker.java:1091)
        at android.view.View.updateDisplayListIfDirty(View.java:14172)
        at android.view.View.getDisplayList(View.java:14207)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3391)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3370)
        at android.view.View.updateDisplayListIfDirty(View.java:14145)
        at android.view.View.getDisplayList(View.java:14207)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3391)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3370)
        at android.view.View.updateDisplayListIfDirty(View.java:14145)
        at android.view.View.getDisplayList(View.java:14207)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3391)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3370)
        at android.view.View.updateDisplayListIfDirty(View.java:14145)
        at android.view.View.getDisplayList(View.java:14207)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3391)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3370)
        at android.view.View.updateDisplayListIfDirty(View.java:14145)
        at android.view.View.getDisplayList(View.java:14207)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3391)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3370)
        at android.view.View.updateDisplayListIfDirty(View.java:14145)
        at android.view.View.getDisplayList(View.java:14207)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3391)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3370)
        at android.view.View.updateDisplayListIfDirty(View.java:14145)
        at android.view.View.getDisplayList(View.java:14207)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3391)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3370)
        at android.view.View.updateDisplayListIfDirty(View.java:14145)
        at android.view.View.getDisplayList(View.java:14207)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3391)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3370)
        at android.view.View.updateDisplayListIfDirty(View.java:14145)
        at android.view.View.getDisplayList(View.java:14207)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3391)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3370)
        at android.view.View.updateDisplayListIfDirty(View.java:14145)
        at android.view.View.getDisplayList(View.java:14207)
        at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:273)
        at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:279)
        at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:318)
        at android.view.ViewRootImpl.draw(ViewRootImpl.java:2560)
        at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2382)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2012)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1084)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5990)
        at android.view.Choreographer$Call

需要邀请 DatePicker 才能设置最小或最大日期。我只是改变dialog.show()在它之前。 :\

Calendar calender = Calendar.getInstance();
calender.setTime( new Date() );
DatePickerDialog dialog = new DatePickerDialog( 
        getActivity(), 
        this,
        calender.get( Calendar.YEAR ), calender.get( Calendar.MONTH ),
        calender.get( Calendar.DAY_OF_MONTH ) );
dialog.show();

DatePicker picker = dialog.getDatePicker();
picker.setMaxDate( System.currentTimeMillis() );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当选择的日期超出最小或最大日期时,DatePicker 会崩溃。安卓5.1 的相关文章

随机推荐

  • 活动滚动时绘制面板边框

    当我尝试制作面板边框时 我遇到了问题 首先我将属性面板设置为 自动滚动 真 然后我将边框绘制代码放在面板事件中 ControlPaint DrawBorder e Graphics ClientRectangle Color Black 5
  • 需要 FLAG_ACTIVITY_NEW_TASK 澄清

    所以我的问题是 我启动 App1 打开 Screen1 然后打开 Screen2 我按 Home 键 将 App1 留在后台 我打开 App2 并启动 App1 Screen1FLAG ACTIVITY NEW TASK https dev
  • 通过 VBA 设置默认打印机

    我正在运行一个在两台打印机之间切换的 Excel 宏 一台名为 RecOffice Pink 另一台名为 RecOffice White 这是解决 VBA 无法轻松指定打印托盘问题的一个巧妙的解决方法 粉红色打印机除了一个纸盘之外的所有纸盘
  • 抓取 Finviz 页面以获取表中的特定值

    首先我要说的是 我不支持抓取服务条款不允许的网站 这纯粹是为了从各个网站假设收集财务数据的学术研究 如果有人想看这个链接 存储在 URLs csv 文件中 想要抓取第 2 5 列 即 Ticker Perf Week Perf Month
  • 使用 csv 文件从元组到整数

    我在使用 csv reader 时遇到了一些问题 我有两个文件 FileA 对应 9 个地理坐标 x 第 1 列 和 y 第 2 列 没有标题 该文件从 Excel 保存到 csv 文件中 301506 5918202 301012 591
  • 防止注销后的返回操作

    注销后 如果我按浏览器中的后退按钮 它不应该显示上一页 它必须转到默认页面 仅限登录页面 所以我尝试了很多方法 Ruby on Rails应用程序 例如 history forward onbeforeunload 元标记中的过期缓存 ht
  • 使用 sed 交换两个单词

    我试图交换一行中的两个单词 但它不起作用 例如 今天是我大学的第一天 应该是 我的今天是大学的第一天 这是我尝试过的 sed s a zA z0 9 a zA z0 9 a zA z0 9 3 2 1 filename txt 我究竟做错了
  • 阻止导入的模块出现在代码完成中?

    如何防止导入的模块被访问 即堵塞我的代码完成选项 例如 testmodule py import os def o stuff return 当我导入时testmodule 我不想os每次我打字时都会出现testmodule 我只想要在 t
  • 基于寄存器的虚拟机如何工作?

    基于寄存器的虚拟机如何工作 我正在寻找有关基于寄存器的虚拟机如何工作的介绍 有人可以帮忙吗 谢谢 具有可用源代码的基于寄存器的 VM 的一个示例是Lua http www lua org 有许多资源可能会有所帮助 Lua 5 0的实现 ht
  • WPF Ribbon - 隐藏选项卡标题(单选项卡应用程序)

    我是 WPF 新手 正在尝试使用功能区控件 我的应用程序中有一个选项卡 并且希望隐藏标题但仍显示选项卡本身 我一直在尝试各种属性和样式 但我只能隐藏整个选项卡 我尝试过 ribbontab 可见性 ribbontab header 可见性
  • 无论如何,Task.Factory.StartNew 在 UI 线程上调用

    我必须处理一个奇怪的问题 至少从我的角度来看是这样 我使用任务来等待变量获取特定值 然后再次在 ui 线程上运行 继续 部分 现在的问题是 在我调用 StartNew 之前 调用内部的 ManagedThreadId 是相同的 它会冻结我的
  • 检查表达式语言中是否存在参数[重复]

    这个问题在这里已经有答案了
  • 如何使用 ObservableObject 更新 UIViewRepresentable

    我正在尝试学习与 SwiftUI 结合 并且正在努力如何更新我的视图 来自 UIKit ObservableObject 之前BindableObject 问题是 显然 方法updateUIView一旦 Published对象发送它已更改的
  • 如何知道我的 SensorManager 是否有已注册的传感器

    我正在为我的 Android 应用程序使用传感器 我用一行代码注册传感器 mySensorManager registerListener this orientationSensor SensorManager SENSOR DELAY
  • LocalNotification 与 AlarmManager 和 BroadcastReceiver 在 Android O (oreo) 中未启动

    我的本地通知在 SDK 26 之前的 Android 上运行 但在 Android O 中 我收到以下警告 并且广播接收器不会被触发 W BroadcastQueue Background execution not allowed rec
  • java.lang.NoClassDefFoundError:com/amazonaws/auth/AWSCredentials

    我正在运行适用于 AWS 的 Glacier API 这只是一个非常基本的版本 尝试列出我的保管库 我按照以下示例进行操作http docs aws amazon com amazonglacier latest dev creating
  • rshiny-将所有文件从shinyDirChoose文件夹上传到服务器

    我保存了用户定义文件夹的路径shinyDirChoose 现在我想从该用户的文件夹上传文件 但我不知道该怎么做 1 全部在服务器端 2 将文件路径提供给fileInput不知何故 这就是我构建应上传的三个文件的文件路径的方法 ui end
  • R - 顶点属性 - “set.vertex.attribute 中给出的值不合适。”

    我有一个 data frame 其中包含我想用作网络文件中的属性的值 当我尝试手动将值分配为属性时 其中一半有效 但另一半显示此错误 我仔细查看了数据 但看不出任何内在原因导致了这种情况 设置矢量输入格式 这个有效 visitgo2n v
  • 如何在android中创建图像按钮?

    所以我是android开发的新手 我怎样才能创建一个像按钮一样的图像 这样当我按下该图像时 图像就会启动特定的活动 所以我希望它显示为图像
  • 当选择的日期超出最小或最大日期时,DatePicker 会崩溃。安卓5.1

    我有这个代码 public void onDateSet DatePicker view int year int monthOfYear int dayOfMonth Log v DateRangePicker Date CHANGED