Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Datepicker dialog without calendar visualization in lollipop [spinner mode]?

I read the documentation: http://developer.android.com/guide/topics/ui/controls/pickers.html but now in lollipop appears the calendar (it is ok for an event but horrible for set a date of birth, I would a spinner mode.) and I can't remove it! In layout It's easy with this property:

 <DatePicker  datePickerMode="spinner"...> 

but from code of the DatePickerDialog if I try to set

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

These properties do not work and the calendar continues to appear!

public static class MyDatePicker extends DialogFragment implements DatePickerDialog.OnDateSetListener {         int pYear;         int pDay;         int pMonth;          @Override         public Dialog onCreateDialog(Bundle savedInstanceState) {             // Use the current date as the default date in the picker             final Calendar c = Calendar.getInstance();             int year = c.get(Calendar.YEAR);             int month = c.get(Calendar.MONTH);             int day = c.get(Calendar.DAY_OF_MONTH);             DatePickerDialog dialogDatePicker = new DatePickerDialog(getActivity(), this, year, month, day);             dialogDatePicker.getDatePicker().setSpinnersShown(true);             dialogDatePicker.getDatePicker().setCalendarViewShown(false);             return dialogDatePicker;             // Create a new instance of DatePickerDialog and return it             //return new DatePickerDialog(getActivity(), this, year, month, day);         }          public void onDateSet(DatePicker view, int year, int month, int day) {             pYear = year;             pDay = day;             pMonth = month;         }     } 
like image 247
Evilripper Avatar asked Feb 26 '15 11:02

Evilripper


2 Answers

DatePickerDialog uses the dialog theme specified by your activity theme. This is a fully-specified theme, which means you need to re-specify any attributes -- such as the date picker style -- that you've set in your activity theme.

<style name="MyAppTheme" parent="android:Theme.Material">     <item name="android:dialogTheme">@style/MyDialogTheme</item>     <item name="android:datePickerStyle">@style/MyDatePicker</item> </style>  <style name="MyDialogTheme" parent="android:Theme.Material.Dialog">     <item name="android:datePickerStyle">@style/MyDatePicker</item> </style>  <style name="MyDatePicker" parent="android:Widget.Material.DatePicker">     <item name="android:datePickerMode">spinner</item> </style> 

Note: Due to Issue 222208, this will not work in Android N / API 24. It has already been fixed in the platform for the next release. There is no workaround available for API 24 devices.

like image 136
alanv Avatar answered Oct 02 '22 07:10

alanv


Apply the Holo_theme in the code level got worked for me.

new DatePickerDialog(getActivity(),android.R.style.Theme_Holo_Dialog,this, year,month, day); 
like image 21
Nithin Raja Avatar answered Oct 02 '22 09:10

Nithin Raja