Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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_Android Datepicker - Fatal编程技术网

Android DatePicker在微调器模式下不显示日期

Android DatePicker在微调器模式下不显示日期,android,datepicker,android-datepicker,Android,Datepicker,Android Datepicker,我在微调器模式下使用DatePicker,并设置最小和最大限制。然后将日期更新为最大值。显示DatePickerDialog时,日期列没有值。当我点击/向上或向下滚动时,会显示值 MyLayout: <DatePicker android:id="@+id/date_picker" android:layout_width="match_parent" android:layo

我在微调器模式下使用
DatePicker
,并设置最小和最大限制。然后将日期更新为最大值。显示
DatePickerDialog
时,日期列没有值。当我点击/向上或向下滚动时,会显示值

MyLayout:

         <DatePicker
                android:id="@+id/date_picker"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginLeft="@dimen/spacing_default"
                android:layout_marginRight="@dimen/spacing_default"
                android:datePickerMode="spinner"
                android:calendarViewShown="false" />
有问题的屏幕截图:

当显示
DatePickerDialog
时,还需要什么来显示日期部分

更新/编辑:

当值集与最大限制相同时,选择器似乎显示空视图。我可以通过先放置
DatePicker.updateDate
,然后调用
DatePicker.setMaxDate
来解决这个问题(在启动
DatePicker
时)。
setMaxDate
将验证以前的值并正确设置。 但是现在我面临同样的问题,当我滚动从七月到八月的月份时,日视图变成空的


欢迎提供任何解决方案/建议。

spinner
模式下,android小部件
DatePicker
中似乎存在漏洞。Google issue tracker中已经存在这样一张罚单:


不幸的是,问题追踪器中没有可用的解决方法或建议。

也有相同的问题。这样解决:

 datePicker.init(initYear, initMonthOfYear, initDayOfMonth,
            new DatePicker.OnDateChangedListener() {
                @Override
                public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                    Resources res = Resources.getSystem();
                    int id = res.getIdentifier("day", "id", "android");
                    NumberPicker dayPicker = datePicker.getRootView().findViewById(id);
                    if (dayPicker != null) {
                        id = res.getIdentifier("numberpicker_input", "id", "android");
                        TextView inputText = dayPicker.findViewById(id);
                        if (inputText != null && TextUtils.isEmpty(inputText.getText())) {
                            inputText.setText(String.valueOf(dayPicker.getValue()));
                        }
                    }
                }
            });

为什么要使用
now().minusMinutes(DATE\u PICKER\u MIN\u DATE\u OFFSET\u IN\u MIN).getMillis()
now()
)并且在较旧的时间之后,肯定比现在少,因此这可能会产生错误。如果你花时间,应用程序需要超过一分钟,它们就会崩溃。我建议您使用
activationDateTime
而不是
now()
我需要从系统日期到激活日期的微调器。这就是为什么要使用
now()
。最小值没有任何问题。当最大值更新为
min
值中的
DatePicker
的当前值时,就会出现问题?和
activationDateTime
相比
now()
是的,
activationDateTime
是未来的,它设置为最大值。同时更新与当前日期相同的日期,以显示picker何时启动。@VishnuSP我认为当您将月份设置为8月时,它超出了picker的最大限制。您的最大日期是什么?
 datePicker.init(initYear, initMonthOfYear, initDayOfMonth,
            new DatePicker.OnDateChangedListener() {
                @Override
                public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                    Resources res = Resources.getSystem();
                    int id = res.getIdentifier("day", "id", "android");
                    NumberPicker dayPicker = datePicker.getRootView().findViewById(id);
                    if (dayPicker != null) {
                        id = res.getIdentifier("numberpicker_input", "id", "android");
                        TextView inputText = dayPicker.findViewById(id);
                        if (inputText != null && TextUtils.isEmpty(inputText.getText())) {
                            inputText.setText(String.valueOf(dayPicker.getValue()));
                        }
                    }
                }
            });