2012-02-14 36 views
9

¿Cómo es posible obtener un DatePickerDialog con el tema Holo Light?DatePickerDialog con tema Holo Light?

Al crear un DatePickerDialog de la siguiente manera:

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

o con el tema android.R.style.Theme_Holo_Light o android.R.style.Theme_Holo_Light_Dialog, aparece un selector de fechas con un título estándar y botones estándar. Traté de usar un tema personalizado con un padre holo light también, pero tampoco funcionó. Parece que funciona con el tema android.R.style.Theme_Holo, pero el resultado es un fondo oscuro (como se esperaba), pero me gustaría tener uno liviano.

La aplicación de android.jar es de la versión 14, la aplicación se ejecuta en una consola con la versión de Android 3.2.

He visto un ejemplo aquí: http://as400samplecode.blogspot.com/2011/10/android-datepickerdialog.html, que muestra un DatePickerDialog con el tema holo light, de la manera que me gustaría tenerlo. No sé por qué no funciona con mi configuración.

Gracias por su ayuda.

+0

poner android: theme = "@ android: estilo/Theme.Holo.Light" en su etiqueta la actividad en manifest.xml –

+0

@PadmaKumar gracias por el comentario. Intentaré con lo que sugiriste. Pero, en general, me gustaría usar un tema con el padre android: Theme.Holo.Light.DialogWhenLarge para la actividad. – Julia

+0

@PadmaKumar Puse android: theme = "@ android: style/Theme.Holo.Light" en la etiqueta de actividad en manifest.xml y no cambió nada (creo, porque uso el 'ContextThemeWrapper'). – Julia

Respuesta

16

El DatePickerDialog tiene un constructor que acepta un tema

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

acaba de actualizar su código para incluir el estilo que desee sin la necesidad de un ContextThemeWrapper

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

Está funcionando para mí de esa manera.

+0

¿Está disponible android.R.style.Theme_Holo_Light_Dialog_NoActionBar para las versiones <2.0? –

+0

@ Yume117: No se agregó el tema Holo a Honeycomb 3.0 – SuperShalabi

2

Leer este androide DatePickerDialog código de ejemplo que incluye cómo utilizar Temas diferentes en DatePickerDialog.

Aquí está el such one.

DatePickerDialog Constructor que admite definir Tema.

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); 
+0

Si bien esta respuesta podría ser correcta, es mejor agregar alguna explicación.Si el enlace proporcionado deja de ser válido, la respuesta ya no tendrá sentido en este momento. – Wouter

1

Para el estilo de este material trabajó para mí:

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(); 
Cuestiones relacionadas