Как установить datePickerMode = "spinner" программно?
Мне нужно создать программу DatePicker программно. И я не могу использовать xml-макет. Я знаю, что set spinner в xml datePickerMode="spinner"
, а затем я могу использовать datePicker.setSpinnersShown(true);
и datePicker.setCalendarViewShown(false)
. Я пытаюсь добавить AttributeSet
в конструктор, но я не знаю, как его использовать.
Может кто-нибудь помочь? Как создать DataPicker в режиме spinner?
Спасибо
Ответы
Ответ 1
Я уже нашел сообщение, которое описывало бы вам эту проблему:
Я нашел объяснение в следующем сообщении (которое описывает проблема очень похожа на мою):
Проблема с материалами для Android Inline Datepicker
Фактически setCalendarViewShown (false) и setSpinnersShown (true) являются по-видимому, больше не работает в последних версиях.
Мы должны использовать явный атрибут XML, подобный этому Android:. DatePickerMode = "вертушка"
Проблема в том, что я использую DialogFragment без какого-либо XML-макета (только диалог выбора даты). Поэтому я не могу установить какой-либо атрибут XML.
Решение состоит в создании специального настраиваемого диалога с XML-макетом файл с использованием запрошенного атрибута.
FROM: Невозможно сделать мой DatePickerDialog программным способом с помощью spinner
Надеюсь, что это поможет
Ответ 2
Если вы хотите установить его программно, вы можете воспользоваться приведенным ниже кодом, но я не проверял этот код, работает он или нет. Дайте мне знать, могу ли я вам чем-нибудь помочь.
datepickerDialog_object.getDatePicker().setSpinnersShown(true);
datepickerDialog_object.getDatePicker().setCalendarViewShown(false);
Ответ 3
Это работает для меня, чтобы установить режим счетчика 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()