Как установить 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()