【问题标题】:How to set datePickerMode="spinner" programmatically?如何以编程方式设置 datePickerMode="spinner"?
【发布时间】:2016-04-15 21:03:52
【问题描述】:

我需要以编程方式创建 DatePicker。而且我不能使用 xml 布局。我知道在 xml 中设置微调器 datePickerMode="spinner" 然后我可以使用 datePicker.setSpinnersShown(true);datePicker.setCalendarViewShown(false) 我尝试将 AttributeSet 添加到构造函数中,但我不知道如何使用它。 有人可以帮忙吗?如何在 spinner 模式下创建 DataPicker?

谢谢

【问题讨论】:

标签: android datepicker


【解决方案1】:

我已经找到了一个帖子,它会描述你这个问题:

我在以下帖子中找到了解释(其中描述了 一个与我的问题非常相似的问题):

Android Material Design Inline Datepicker issue

其实 setCalendarViewShown(false) 和 setSpinnerShown(true) 是 显然在最新版本中不再工作了。

我们必须使用像这样的显式 XML 属性 android:datePickerMode="spinner".

问题是我使用的是没有任何 XML 布局的 DialogFragment (只是一个日期选择器对话框)。所以我不能设置任何 XML 属性。

解决方案是创建一个具有 XML 布局的专用自定义对话框 使用请求的属性的文件。

发件人:Impossible to make my DatePickerDialog use a spinner style programmatically

希望对你有帮助

【讨论】:

    【解决方案2】:

    如果您想以编程方式设置它,您可以使用以下代码,但我尚未检查此代码是否有效。如果我能以其他方式帮助您,请告诉我。

    datepickerDialog_object.getDatePicker().setSpinnersShown(true);
    datepickerDialog_object.getDatePicker().setCalendarViewShown(false);
    

    【讨论】:

    • 您的回答与作者的问题有何不同?
    • 他使用的是直接对象,这就是他无法设置 setspinnershown 参数的原因。
    • 它对我有用,但只有在构造函数中定义样式主题之后。 new DatePickerDialog(view.getContext(),android.R.style.Theme_Holo_Dialog, this, year, month, day);
    【解决方案3】:
    DatePickerDialog datePickerDialog = new DatePickerDialog(SignupPatientStep2.this,
    android.R.style.Theme_Holo_Dialog, date, myCalendar.get(Calendar.YEAR),
    myCalendar.get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH));
    
    //following line to restrict future date selection
    long now = System.currentTimeMillis() - 1000;
    datePickerDialog.getDatePicker().setMaxDate(now);
    
    //these lines for scrollable calender. but you have to use android.R.style.Theme_Holo_Dialog in your consructor. as @Cesar Alejandro M commented
    datePickerDialog.getDatePicker().setSpinnersShown(true);
    datePickerDialog.getDatePicker().setCalendarViewShown(false);
    
    datePickerDialog.show();
    

    【讨论】:

    • 这对我不起作用,Android 告诉我 spinnerShowncalendarViewShown 已弃用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多