Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.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
Android DatePicker/对话框使用最小/最大日期显示不正确的月份_Android_Datepicker_Datepickerdialog - Fatal编程技术网

Android DatePicker/对话框使用最小/最大日期显示不正确的月份

Android DatePicker/对话框使用最小/最大日期显示不正确的月份,android,datepicker,datepickerdialog,Android,Datepicker,Datepickerdialog,我正在使用DatePickerDialog和DatePicker设置一个特定的范围 datePicker.setMinDate(minDate); datePicker.setMaxDate(maxDate); 如果我的最小/最大日期在一个月的范围内(例如:2014年2月7日-2014年2月27日),我仍然会在对话框中显示相邻月份(1月、3月)。 如果我选择最后一个月(1月),对话框会自动切换到minDate,这个月会切换回2月。下一个月也是一样 有没有办法解决这个问题,使我只显示我范围内的

我正在使用DatePickerDialog和DatePicker设置一个特定的范围

datePicker.setMinDate(minDate);
datePicker.setMaxDate(maxDate);
如果我的最小/最大日期在一个月的范围内(例如:2014年2月7日-2014年2月27日),我仍然会在对话框中显示相邻月份(1月、3月)。 如果我选择最后一个月(1月),对话框会自动切换到minDate,这个月会切换回2月。下一个月也是一样


有没有办法解决这个问题,使我只显示我范围内的月份?

在Android中,月份从零开始

所以你必须在1月使用零,12月使用11,我也有同样的错误(还有许多人在StackOverflow上)

我的解决方案:

    monthPickerFrom =(DatePicker)mDialogView.findViewById(R.id.monthPickerFrom);
    HideDay(monthPickerFrom);
    Calendar currentDate = Calendar.getInstance();
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.YEAR, 2007);
    cal.set(Calendar.MONTH, Calendar.JANUARY);
    cal.set(Calendar.DAY_OF_MONTH, 1);
    cal.set(Calendar.HOUR, 0);
    cal.set(Calendar.MINUTE, 0);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);
    monthPickerFrom.setMinDate(cal.getTimeInMillis());

    cal.set(Calendar.YEAR, currentDate.get(Calendar.YEAR));
    cal.set(Calendar.MONTH, currentDate.get(Calendar.MONTH));
    monthPickerFrom.setMaxDate(cal.getTimeInMillis());

    monthPickerFrom.init(currentDate.get(Calendar.YEAR), currentDate.get(Calendar.MONTH), 1, new DatePicker.OnDateChangedListener() {
        @Override
        public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            ...
    });

我认为一个月从零=一月和11=十二月开始。。这可能会让你觉得你误解了我的话题。我可以选择三月和一月。但我只有2月到2月之间的一段时间。所以我不想让其他的月份(一月和三月)成为过去displayed@Maxi您好,您找到问题的解决方案了吗?