Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 日期选择器不适用于API 26_Java_Android - Fatal编程技术网

Java 日期选择器不适用于API 26

Java 日期选择器不适用于API 26,java,android,Java,Android,此代码 Calendar calendarStart = Calendar.getInstance(); startYear = calendarStart.get(Calendar.YEAR) + 543; startMonth = calendarStart.get(Calendar.MONTH); startDay = calendarStart.get(Calendar.DAY_OF_MONTH) - 7; dateStartPickerDialog =

此代码

Calendar calendarStart = Calendar.getInstance();
    startYear = calendarStart.get(Calendar.YEAR) + 543;
    startMonth = calendarStart.get(Calendar.MONTH);
    startDay = calendarStart.get(Calendar.DAY_OF_MONTH) - 7;

    dateStartPickerDialog = new DatePickerDialog(
            AccountReportActivity.this, R.style.DatePicker,
            AccountReportActivity.this, startYear, startMonth, startDay);

    dateStartPickerDialog.getDatePicker().setMinDate(calendarStart.getTimeInMillis());
    calendarStart.add(Calendar.YEAR, 543);
    dateStartPickerDialog.getDatePicker().setMaxDate(calendarStart.getTimeInMillis());
这是一个错误代码

 at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
                                                                     Caused by: java.lang.IllegalArgumentException: timeInMillis must be between the values of getMinDate() and getMaxDate()
                                                                        at android.widget.DayPickerView.setDate(DayPickerView.java:307)
                                                                        at android.widget.DayPickerView.setDate(DayPickerView.java:286)
                                                                        at android.widget.DayPickerView.setDate(DayPickerView.java:275)
                                                                        at android.widget.DatePickerCalendarDelegate.onDateChanged(DatePickerCalendarDelegate.java:405)
                                                                        at android.widget.DatePickerCalendarDelegate.init(DatePickerCalendarDelegate.java:376)
                                                                        at android.widget.DatePicker.init(DatePicker.java:228)
                                                                        at android.app.DatePickerDialog.<init>(DatePickerDialog.java:133)
                                                                        at android.app.DatePickerDialog.<init>(DatePickerDialog.java:109)
                                                                        at com.splanet.aplaysellers.activity.report.AccountReportActivity.setUpCurrentStartDate(AccountReportActivity.java:103)
                                                                        at com.splanet.aplaysellers.activity.report.AccountReportActivity.initWidget(AccountReportActivity.java:75)
                                                                        at com.splanet.aplaysellers.activity.report.AccountReportActivity.onCreate(AccountReportActivity.java:51)
                                                                        at android.app.Activity.performCreate(Activity.java:6980)
                                                                        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
在com.android.internal.os.zyote$MethodAndArgsCaller.run(zyote.java:240)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
原因:java.lang.IllegalArgumentException:timeInMillis的值必须介于getMinDate()和getMaxDate()之间
位于android.widget.DayPickerView.setDate(DayPickerView.java:307)
位于android.widget.DayPickerView.setDate(DayPickerView.java:286)
位于android.widget.DayPickerView.setDate(DayPickerView.java:275)
位于android.widget.DatePickerCalendarDelegate.onDateChanged(DatePickerCalendarDelegate.java:405)
位于android.widget.DatePickerCalendarDelegate.init(DatePickerCalendarDelegate.java:376)
位于android.widget.DatePicker.init(DatePicker.java:228)
在android.app.DatePickerDialog上(DatePickerDialog.java:133)
在android.app.DatePickerDialog上(DatePickerDialog.java:109)
在com.splanet.aplaysells.activity.report.AccountReportActivity.setUpCurrentStartDate(AccountReportActivity.java:103)上
在com.splanet.aplaysells.activity.report.AccountReportActivity.initWidget(AccountReportActivity.java:75)上
在com.splanet.aplaysells.activity.report.AccountReportActivity.onCreate上(AccountReportActivity.java:51)
位于android.app.Activity.performCreate(Activity.java:6980)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)上

请帮助我尝试通过各种渠道解决这个问题。它无法解决此问题。

将不同的最小和最大日期设置为日期选择器 试试这个


将不同的最小和最大日期设置为日期选择器 试试这个


使用
System.currentTimeMillis()
作为最大日期,它将以毫秒为单位返回当前日期。和最小使用压光机。! 如果你想让你的应用程序在每一个Android版本上都能完全正常工作,请遵循我的示例代码


使用
System.currentTimeMillis()
作为最大日期,它将以毫秒为单位返回当前日期。和最小使用压光机。! 如果你想让你的应用程序在每一个Android版本上都能完全正常工作,请遵循我的示例代码


在4.4上运行此代码,由于calendarStart.getTimeInMillis()的原因,它将在setMinDate(calendarStart.getTimeInMillis()上崩溃。请看一下我上面的示例,谢谢。!在4.4上运行此代码,由于calendarStart.getTimeInMillis()的原因,它将在setMinDate(calendarStart.getTimeInMillis()上崩溃。请看一下我上面的示例,谢谢。!dateStartPickerDialog.getDatePicker().setMinDate(calendarStart.getTimeInMillis());calendarStart.add(Calendar.YEAR,543);dateStartPickerDialog.getDatePicker().setMaxDate(calendarStart.getTimeInMillis());拆下这些线。!欢迎@PhattarapongYodwiset感谢并投票。!dateStartPickerDialog.getDatePicker().setMinDate(calendarStart.getTimeInMillis());calendarStart.add(Calendar.YEAR,543);dateStartPickerDialog.getDatePicker().setMaxDate(calendarStart.getTimeInMillis());拆下这些线。!欢迎@PhattarapongYodwiset感谢并投票。!您是否使用三星设备进行测试?您是否使用三星设备进行测试?
Calendar calendarStart = Calendar.getInstance();
startYear = calendarStart.get(Calendar.YEAR);
startMonth = calendarStart.get(Calendar.MONTH);
startDay = calendarStart.get(Calendar.DAY_OF_MONTH) - 7;

dateStartPickerDialog = new DatePickerDialog(
        AccountReportActivity.this, R.style.DatePicker,
        AccountReportActivity.this, startYear, startMonth, startDay);

dateStartPickerDialog.getDatePicker().setMinDate(calendarStart.getTimeInMillis());
calendarStart.add(Calendar.YEAR, 543);
dateStartPickerDialog.getDatePicker().setMaxDate(calendarStart.getTimeInMillis());
 Calendar calendar = Calendar.getInstance();

        year = calendar.get(Calendar.YEAR);
        month = calendar.get(Calendar.MONTH);
        day = calendar.get(Calendar.DAY_OF_MONTH);

        datePickerDialog = new DatePickerDialog(getActivity(), onDateSet,
                year, month, day);

        // calendar.add(Calendar.DATE, Constants.DateAndMonth.CURRENT_DAY);//Current day
        datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis());
        // Set the Calendar new date as maximum date of date picker
        datePickerDialog.getDatePicker().setMaxDate(calendar.getTimeInMillis());

        // Subtract 90 days from Calendar updated date
        calendar.add(Calendar.DATE, -Constants.DateAndMonth.LAST_NINETY_DAY);

        // Set the Calendar new date as minimum date of date picker
        datePickerDialog.getDatePicker().setMinDate(calendar.getTimeInMillis());

        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
            datePickerDialog.setTitle("");//Prevent Date picker from creating extra Title.!
        }