How to set Android DatePicker mode to spinner for APIs below level 21
11,781
Found an answer. Instead of creating a new DatePickerDialog in the onCreateDialog method, I just created my own layout for the date picker inflated it in the method.
Here is the xml layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<DatePicker
android:id="@+id/dialog_date_datePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:calendarViewShown="false"
android:datePickerMode="spinner"
android:spinnersShown="true">
</DatePicker>
And here is the Java code:
public class MyDatePicker extends DialogFragment {
public Dialog onCreateDialog(Bundle savedInstanceState) {
View v = getActivity().getLayoutInflater().inflate(R.layout.datepicker, null);
return new AlertDialog.Builder(getActivity()).setView(v).create();
}
}
Thanks!
Author by
racumin
Updated on June 25, 2022Comments
-
racumin almost 2 years
I want to display a DatePickerDialog with mode spinner instead of calendar. In my styles.xml, I tried to put this attribute but it says that the minimum SDK version I should be using is API 21.
<item name="android:datePickerMode">spinner</item>
I am using minimum SDK version 18. How do I set the default date picker mode to spinner for APIs lower than API 21?
This is my Java code for my date picker:
public class MyDatePicker extends DialogFragment implements DatePickerDialog.OnDateSetListener { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { DatePickerDialog datePickerDialog = new DatePickerDialog(getContext(), R.style.MyTheme, this, 0, 0, 0 ); return datePickerDialog; } @Override public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { }
}
Thanks!
-
racumin about 7 yearsI tried this but still did not work. I also found this and it looks like I need to really put the xml <item name="android:datePickerMode">spinner</item> in the style.xml but Android Studio says it nneds to have a minSdk of 21
-
Leonid Ustenko over 5 yearsandroid:datePickerMode="spinner" doesn't work for all the APIs