这是我的代码。请解释我如何使用时间选择器对话框禁用过去时间,并提供一些代码如何在此代码中禁用过去时间以及如何使用 android 时间选择器对话框应用它。时间选择器对话框类没有任何 setMinTime 方法以及如何获取它。
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();
}
});
感谢任何帮助。谢谢
最佳答案
有关更多信息,请访问此 page .
使用这个库。
依赖性
dependencies {
compile 'com.wdullaer:materialdatetimepicker:2.3.0'
}
用它来显示对话框
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");
当用户选择时间时从对话框中获取时间。
@Override
public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute) {
String time = "You picked the following time: "+hourOfDay+"h"+minute;
timeTextView.setText(time);
}
用它来设置最短时间
setMinTime(Timepoint time)
例子
tpd.setMinTime(now2.get(Calendar.HOUR_OF_DAY),now2.get(Calendar.MINUTE),
now2.get(Calendar.SECOND));
在上面的示例中,MinTime 是当前时间。
方法setMinTime
有三个参数小时、分钟、秒;
setMinTime(5,0,0);//通过使用此 minTime 设置为 5 点钟。
关于android - 如何在android中的计时器选择器对话框中禁用过去时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37235258/