en Sin categoría

DateTimePickerDialog desde un fragment

Librería DateTime Picker

https://github.com/Kunzisoft/Android-SwitchDateTimePicker

Kunzisoft/Android-SwitchDateTimePicker

//INI DATE
compile 'com.github.Kunzisoft:Android-SwitchDateTimePicker:2.0'
//FIN DATE

// Initialize
        SwitchDateTimeDialogFragment dateTimeDialogFragment = SwitchDateTimeDialogFragment.newInstance(
                "Cuando",
                "Aceptar",
                "Cancelar"
        );

        Calendar current = Calendar.getInstance();
        //minimo 3 horas adelante
        current.add(Calendar.HOUR,3);
        Date min = current.getTime();
// Assign values
        dateTimeDialogFragment.startAtCalendarView();
        dateTimeDialogFragment.set24HoursMode(false);
        //dateTimeDialogFragment.setMinimumDateTime(min);

        //maximo 1 semana adelante
        current.add(Calendar.DAY_OF_MONTH,7);

        dateTimeDialogFragment.setMaximumDateTime(current.getTime());

        //si no tiene fecha guardada, mostrar la actual sino la que guardo
        dateTimeDialogFragment.setDefaultDateTime(dateCuando==null?min:dateCuando);

// Define new day and month format
        try {
            dateTimeDialogFragment.setSimpleDateMonthAndDayFormat(new SimpleDateFormat("dd MMMM", Locale.getDefault()));
        } catch (SwitchDateTimeDialogFragment.SimpleDateMonthAndDayFormatException e) {
            Log.e("ee", e.getMessage());
        }

// Set listener
        dateTimeDialogFragment.setOnButtonClickListener(new SwitchDateTimeDialogFragment.OnButtonClickListener() {
            @Override
            public void onPositiveButtonClick(Date date) {
                // Date is get on positive button click
                // Do something
                dateCuando = date;
                Calendar datePicker = Calendar.getInstance();
                datePicker.setTime(date);


                final String selectedDate = datePicker.get(Calendar.DAY_OF_MONTH) + " / " + (datePicker.get(Calendar.MONTH) +1) + " / " + datePicker.get(Calendar.YEAR) +" "+datePicker.get(Calendar.HOUR) +":"+datePicker.get(Calendar.MINUTE)+" "+(datePicker.get(Calendar.AM_PM)==0?"pm":"am") ;
                etCuandoValue.setText(selectedDate);
            }

            @Override
            public void onNegativeButtonClick(Date date) {
                // Date is get on negative button click
            }
        });

// Show
        dateTimeDialogFragment.show(getFragmentManager(), "dialog_time");

Se vera así

TODO: Mejorable, utilitario que abstrae toda la construcción con los casos típicos

Escriba un comentario

Comentario