Federico Ponzi
Federico Ponzi

Reputation: 2785

Create date and time picker in one dialog in android

As in question title i want to display a date and time picker in one dialog in android. Maybe display first datepicker, after user select a date it should transitate timepicker without closing and reopen the dialog.

How to do this? Thanks

Upvotes: 1

Views: 1135

Answers (2)

Tanmay Sahoo
Tanmay Sahoo

Reputation: 469

//my style of date and time picker //datepicker

private SimpleDateFormat dateFormat,timeFormat;
dateFormat =new SimpleDateFormat("EEEE,MMM d");
timeFormat = new SimpleDateFormat("HH:mm a");

//my onclick

@Override
public void onClick(View v) {
    if (v.getId()==R.id.dob){
        openDatePicker(new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                Calendar calendar=Calendar.getInstance();
                calendar.set(Calendar.YEAR,year);
                calendar.set(Calendar.MONTH,monthOfYear);
                calendar.set(Calendar.DAY_OF_MONTH,dayOfMonth);
                String dateString=formatDate(calendar.getTimeInMillis());
                dob.setText(dateString);
            }
        });
    }

// opendatepicker method

private  String formatDate(long timeStamp){
    Date date =new Date(timeStamp);
    String dateToShow = dateFormat.format(date);
    return dateToShow;
}
private void openDatePicker(DatePickerDialog.OnDateSetListener listner){
    Calendar calendar=Calendar.getInstance();
    new DatePickerDialog(this,listner,calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH)).show();
}

//and time picker

if (v.getId()==R.id.time){
        openTimePicker(new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                String time=getStringTime(hourOfDay,minute);
                textTime.setText(time);
            }
        });
    }

//opentimepickermethod

private void openTimePicker(TimePickerDialog.OnTimeSetListener listner){
    Date date=new Date();
    new TimePickerDialog(this,listner,date.getHours(),date.getMinutes(),false).show();
}

private String getStringTime(int hour,int minute){
    String am_pm="";
    Calendar calendar=Calendar.getInstance();
    calendar.set(Calendar.HOUR_OF_DAY, hour);
    calendar.set(Calendar.MINUTE, minute);
    if(calendar.get(Calendar.AM_PM)==Calendar.AM){
        am_pm="AM";
        return ""+calendar.get(Calendar.HOUR)+":"+calendar.get(Calendar.MINUTE)+""+am_pm;
    }else{
        am_pm="PM";
        if(calendar.get(Calendar.HOUR)==0) {
            hour = 12;
            return "" + hour + ":" + calendar.get(Calendar.MINUTE) + "" + am_pm;
        }else
            return ""+calendar.get(Calendar.HOUR)+":"+calendar.get(Calendar.MINUTE)+""+am_pm;

    }

}

Upvotes: -1

Aspicas
Aspicas

Reputation: 4497

You can use thar library with Material Design on Pre-Lollipop devices, it's so beautiful Library.

https://github.com/flavienlaurent/datetimepicker

Time picker it's amazing.

Upvotes: 2

Related Questions