如何以编程方式设置datePickerMode =“spinner”?

时间:2016-01-11 14:07:50

标签: android datepicker

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

谢谢

3 个答案:

答案 0 :(得分:8)

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

  

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

     

Android Material Design Inline Datepicker issue

     

实际上setCalendarViewShown(false)和setSpinnersShown(true)都是   显然在最新版本中不再有效了。

     

我们必须使用像这样的显式XML属性   的机器人:datePickerMode = “微调”

     

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

     

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

     

FROM:Impossible to make my DatePickerDialog use a spinner style programmatically

希望有所帮助

答案 1 :(得分:1)

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();

答案 2 :(得分:0)

对我来说,可以通过编程方式设置DatePickerMode微调器模式。

  

Theme_Holo_Dialog_MinWidth已被弃用

 val dpDialog = DatePickerDialog(activity!!,
            android.R.style.Theme_Holo_Dialog_MinWidth,listener,
            year, month, day)
        dpDialog.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
        dpDialog.show()