Nitesh Shrivas
Nitesh Shrivas

Reputation: 115

Min time for Timepicker dialog

How to set min time on timepicker dialog or disable past time on timepicker dialog in android. Any library suggestion ?

Upvotes: 1

Views: 8727

Answers (1)

Mahesh Vayak
Mahesh Vayak

Reputation: 1106

public class MainActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener, TimePickerDialog.OnTimeSetListener

For Time Picker

@SuppressLint("WrongConstant")
public void showTimePicker(Calendar calendar) {
    Calendar minTimeCalendar = Calendar.getInstance();
    minTimeCalendar.setTime(localToGMT(minTimeCalendar.getTime()));
    TimePickerDialog tpd = TimePickerDialog.newInstance(this, calendar.get(11), calendar.get(12), true);
    if (compareToDate(calendar.getTime(), minTimeCalendar.getTime())) {
        minTimeCalendar.add(12, 60);
        tpd.setMinTime(minTimeCalendar.get(11), 0, 0);
    }

    **tpd.enableMinutes(false);**
    tpd.setVersion(TimePickerDialog.Version.VERSION_2);
    tpd.show(getFragmentManager(), "TimePickDialog");
}

For Date Picker

 public void showDatePicker(Calendar calendar) {
    Calendar minDateCalendar = Calendar.getInstance();

    if (currentHour == 24) {
        minDateCalendar.add(Calendar.DAY_OF_YEAR, 1);
    }
    minDateCalendar.setTime(localToGMT(minDateCalendar.getTime()));
    @SuppressLint("WrongConstant") DatePickerDialog dpd = DatePickerDialog.newInstance(this, calendar.get(1), calendar.get(2), calendar.get(5));

    dpd.setMinDate(minDateCalendar);
    dpd.setVersion(DatePickerDialog.Version.VERSION_2);
    dpd.show(getFragmentManager(), "DatePickerDialog");
}

Both Override method

@Override
public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) {
     //display selected date here code
}

@Override
public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int second) {
    //display selected time here code
}

Hope this helps you...if you need any help you can ask

Upvotes: 1

Related Questions