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