我正在使用此链接Android TimePickerDialog set max time。android:TimePickerDialog防止用户选择过去的时间,并可以选择新日期的未来时间
我是android新手。在此代码的帮助下,我无法选择过去的时间,但我们无法选择未来的时间。在timepickerdialog模式中选择12时,会根据第二天而不是过去一天自动更改为am。
我正在使用此链接Android TimePickerDialog set max time。android:TimePickerDialog防止用户选择过去的时间,并可以选择新日期的未来时间
我是android新手。在此代码的帮助下,我无法选择过去的时间,但我们无法选择未来的时间。在timepickerdialog模式中选择12时,会根据第二天而不是过去一天自动更改为am。
试试这个代码:
TimePickerFragment timePickerFragment = new TimePickerFragment();
timePickerFragment.setOnTimeSetListener(new OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Calendar datetime = Calendar.getInstance();
Calendar c = Calendar.getInstance();
datetime.set(Calendar.HOUR_OF_DAY, hourOfDay);
datetime.set(Calendar.MINUTE, minute);
if (datetime.getTimeInMillis() >= c.getTimeInMillis()) {
//it's after current
int hour = hourOfDay % 12;
btnPickStartTime.setText(String.format("%02d:%02d %s", hour == 0 ? 12 : hour,
minute, hourOfDay < 12 ? "am" : "pm"));
} else {
//it's before current'
Toast.makeText(getApplicationContext(), "Invalid Time", Toast.LENGTH_LONG).show();
}
}
});
timePickerFragment.show(getSupportFragmentManager(), "TIME");
,它会显示在对话框timepicker
,如果用户选择当前时间之前的任何时候......它会显示无效的时间..
感谢它的工作.. –
高兴地帮助.. – rafsanahmad007
最适合你的解决方案使用this材料设计库来选择时间或日期并设置最小值。
TimePickerDialog tpd = TimePickerDialog.newInstance(
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int second) {
//put some interesting code
}
},
now.get(Calendar.HOUR_OF_DAY),
now.get(Calendar.MINUTE),
true
);
tpd.setMinTime(10, 0, 0); // MIN: hours, minute, secconds
tpd.show(getFragmentManager(), "TimePickerDialog");
到材质的DateTime选取器库添加到您的项目最简单的方法是将它作为一个依赖于你的build.gradle
dependencies {
compile 'com.wdullaer:materialdatetimepicker:3.0.0'
}
希望这会帮助你。
我在问先生。 –
我是android新手。我正在完成这项任务。 –
首先阅读此链接http://stackoverflow.com/help/how-to-ask。在目前的情况下,你完全不清楚你想要完成什么以及你的问题是什么。所以首先根据链接编辑你的问题,并使其更加清晰和精确 –