Julia
Julia

Reputation: 358

DatePickerDialog with theme Holo Light?

How is it possible to get a DatePickerDialog with Holo Light theme?

When creating a DatePickerDialog as follows:

 DatePickerDialog dpd = new DatePickerDialog(new ContextThemeWrapper(this,
                    android.R.style.Theme_Holo_Light_Dialog_NoActionBar), 
    new DateListener(v), mTime.year, mTime.month, mTime.monthDay);

or with theme android.R.style.Theme_Holo_Light or android.R.style.Theme_Holo_Light_Dialog, I get a date picker with a standard title and standard buttons. I tried to use a custom theme with a holo light parent too, but it didn't work either. It seems to work with theme android.R.style.Theme_Holo, but the result is a dark background (as expected), but I would like to have a light one.

The application's android.jar is of version 14, the application is running on a divice with android version 3.2.

I have seen an example here: http://as400samplecode.blogspot.com/2011/10/android-datepickerdialog.html, which shows a DatePickerDialog with the holo light theme, the way I would like to have it. I don't know why it doesn't work with my setup.

Thank you for help.

Upvotes: 10

Views: 26761

Answers (3)

jonruna
jonruna

Reputation: 121

For Material style this worked for me:

int datePickerThemeResId = 0;
if (android.os.Build.VERSION.SDK_INT >= 21) {
    datePickerThemeResId = android.R.style.Theme_Material_Light_Dialog;
}
new DatePickerDialog(
    context,
    datePickerThemeResId,
    (view, year, month, dayOfMonth) -> {},
    year,
    month,
    day
).show();

Upvotes: 3

Saiful Alam
Saiful Alam

Reputation: 121

Read this Android DatePickerDialog example code which includes how to use different Themes in DatePickerDialog.

Here is the such one.

DatePickerDialog Constructor which support to define Theme.

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);  
return new DatePickerDialog(getActivity(), AlertDialog.THEME_HOLO_DARK, this, year, month, day); 

Upvotes: 3

SuperShalabi
SuperShalabi

Reputation: 471

The DatePickerDialog has a constructor which accepts a theme

DatePickerDialog(Context context, int theme, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)

just update your code to include the style you want without the need for a ContextThemeWrapper

DatePickerDialog dpd = new DatePickerDialog(this,
                android.R.style.Theme_Holo_Light_Dialog_NoActionBar, 
new DateListener(v), mTime.year, mTime.month, mTime.monthDay);

It's working for me that way.

Upvotes: 18

Related Questions