Imposible hacer que mi DatePickerDialog utilice un estilo de hilandero mediante programación
Estoy utilizando un DialogFragment para abrir un DatePickerDialog
public class DatePickerFragment extends DialogFragment{ @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); // Create a new instance of DatePickerDialog and return it DatePickerDialog DatePickerDialog = new DatePickerDialog(getActivity(), (ProfileCreationActivity)getActivity(), year, month, day); return DatePickerDialog; }
}
- Datepicker para Android min max date before api level 11
- Datepicker: Cómo popup datepicker cuando haga clic en el botón y almacenar valor en variable
- Cómo transferir la cadena de fecha con formato de mi DatePickerFragment?
- Fecha máxima en un DatePickerDialog de Android
- Casting y obtención de valores del selector de fecha y hora en android
Estoy consiguiendo una mirada del calendario que preferiría que un aspecto del hilandero
Lo intenté:
datePickerDialog.getDatePicker().setCalendarViewShown(false);
y
datePickerDialog.getDatePicker().setLayoutMode(1);
no funciona.
Tenga en cuenta que quiero que el hilandero busque una actividad, pero que quiero que la vista del calendario para otra actividad. Así que no puedo cambiar el estilo completo de la aplicación. Necesito un estilo personalizado para una actividad.
Gracias
- Cuando se utiliza datepicker en android 4.0 y superior .. cómo evitar la vista calendario
- Selector de fecha y hora en una vista
- Todavía puede seleccionar fechas deshabilitadas en el selector de fechas
- Cómo evitar la fecha seleccionada pasada en DatePickerDialog (setMinDate no funciona como se esperaba)
- ¿Cómo obtener la siguiente fecha cuando haga clic en el botón en android?
- DatePicker causas Excepción generada durante la representación en LayoutEditor
- ¿Cómo se establecen las fechas mínimas y máximas en un Android DatePicker?
- Android - OnDateChangedListener - ¿cómo se establece esto?
He encontrado una explicación en el siguiente post (que describe un problema muy similar al mío):
Diseño de material Android Inline Datepicker issue
De hecho, el setCalendarViewShown (false) y setSpinnersShown (true) no funcionan aparentemente en las últimas versiones.
Tenemos que usar un atributo XML explícito como este android: datePickerMode = "spinner" .
El problema es que estoy utilizando un DialogFragment sin ningún formato XML (sólo un diálogo selector de fecha). Por lo tanto, no puedo establecer ningún atributo XML.
La solución es crear un cuadro de diálogo personalizado dedicado con un archivo de diseño XML utilizando el atributo solicitado.
Puede mantenerlo de forma programática, no necesita crear un nuevo XML con el hilandero, simplemente cambié mi estilo de AppTheme (v21) y trabajé 😉
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="colorControlActivated">@color/colorPrimary</item> <item name="android:timePickerDialogTheme">@style/PickerDialogCustom</item> <item name="android:datePickerDialogTheme">@style/PickerDialogCustom</item> <item name="alertDialogTheme">@style/AlertDialogCustom</item> </style> <style name="PickerDialogCustom" parent="AlertDialogCustom"> <item name="android:textColor">@color/colorPrimary</item> <item name="android:textColorPrimary">@color/colorPrimaryDark</item> <item name="colorControlNormal">@color/greyLight500</item> <item name="android:layout_margin">2dp</item> <item name="android:datePickerMode">spinner</item> </style> <style name="AlertDialogCustom" parent="Theme.AppCompat.Light.Dialog.Alert"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorAccent">@color/colorPrimary</item> <item name="android:positiveButtonText">@color/colorPrimary</item> <item name="android:negativeButtonText">@color/greyDark200</item> <item name="buttonBarNegativeButtonStyle">@style/negativeButton</item> <item name="android:datePickerStyle">@style/PickerDialogCustom</item> </style>
Recuerde mantener el soporte para <21 simplemente agregando esta línea, este comando se ignora para> = 21
datePickerDialog.getDatePicker().setLayoutMode(1);
- "Error al exportar la aplicación" en Eclipse 4.4.1 para Android con ADT 23.0.4
- Android Volley biblioteca no funciona con 204 y la respuesta del cuerpo vacío