Reputation: 89
This is my code. Please explain how can i disable past time using time picker dialog and give some code how to disable past time in this code and how to apply this using android time picker dialog . Time picker dialog class does not have any setMinTime method and how to get it.
time.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Calendar mcurrentTime = Calendar.getInstance();
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
int minute = mcurrentTime.get(Calendar.MINUTE);
TimePickerDialog mTimePicker;
mTimePicker = new TimePickerDialog(
FillServiceDetailActivity.this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker,
int selectedHour, int selectedMinute) {
String AM_PM;
int hour;
String[] sp=currentTime.split(":");
int hour1=Integer.parseInt(sp[0]);
int min1=Integer.parseInt(sp[1]);
//Toast.makeText(FillServiceDetailActivity.this,"selected hour:\t"+String.valueOf(selectedHour),Toast.LENGTH_LONG).show();
String timeSet = "";
if (selectedHour > 12 && hour1>12) {
selectedHour -= 12;
hour1-=12;
timeSet = "PM";
} else if (selectedHour == 0) {
selectedHour += 12;
timeSet = "AM";
} else if (selectedHour == 12)
timeSet = "PM";
else
timeSet = "AM";
String minutes = "";
if (selectedMinute < 10)
minutes = "0" + selectedMinute;
else
minutes = String.valueOf(selectedMinute);
/*if(selectedHour>12) {
hour = selectedHour - 12;
AM_PM = "PM";
} else if(selectedHour==12)
{
hour=selectedHour;
AM_PM="PM";
}
else {
hour=selectedHour;
AM_PM="AM";
}*/
//Toast.makeText(FillServiceDetailActivity.this,String.valueOf(hour1),Toast.LENGTH_LONG).show();
//Toast.makeText(FillServiceDetailActivity.this,String.valueOf(selectedHour),Toast.LENGTH_LONG).show();
time.setText(selectedHour + ":" + minutes + "\t" + timeSet);
}
}, hour, minute, false);// Yes 24 hour time
mTimePicker.setTitle("Select Time");
mTimePicker.show();
}
});
Any help is appreciated.Thanks
Upvotes: 4
Views: 10754
Reputation: 2839
For more info visit this page.
Use this library.
Dependency
dependencies {
compile 'com.wdullaer:materialdatetimepicker:2.3.0'
}
use this to show Dialog
Calendar now = Calendar.getInstance();
TimePickerDialog tpd = TimePickerDialog.newInstance(
MainActivity.this,
now.get(Calendar.HOUR_OF_DAY),
now.get(Calendar.MINUTE),
mode24Hours.isChecked()
);
tpd.setThemeDark(modeDarkTime.isChecked());
tpd.vibrate(vibrateTime.isChecked());
tpd.dismissOnPause(dismissTime.isChecked());
tpd.enableSeconds(enableSeconds.isChecked());
if (modeCustomAccentTime.isChecked()) {
tpd.setAccentColor(Color.parseColor("#9C27B0"));
}
if (titleTime.isChecked()) {
tpd.setTitle("TimePicker Title");
}
if (limitTimes.isChecked()) {
tpd.setTimeInterval(2, 5, 10);
}
tpd.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialogInterface) {
Log.d("TimePicker", "Dialog was cancelled");
}
});
tpd.show(getFragmentManager(), "Timepickerdialog");
Get Time from Dialog when user select time.
@Override
public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute) {
String time = "You picked the following time: "+hourOfDay+"h"+minute;
timeTextView.setText(time);
}
Use this to set minimum time
setMinTime(Timepoint time)
example
tpd.setMinTime(now2.get(Calendar.HOUR_OF_DAY),now2.get(Calendar.MINUTE),
now2.get(Calendar.SECOND));
In above example MinTime is current Time.
method setMinTime
have three arguments hour, minutes, second;
setMinTime(5,0,0); // By using this minTime is set to 5 'o clock.
Upvotes: 6