嗨,我是 android 的新手,我不想让过去的时间被使用时间选择器选择.. 我尝试使用以下代码
private TimePicker.OnTimeChangedListener StartTimeChangedListener=new TimePicker.OnTimeChangedListener()
{
public void onTimeChanged(TimePicker view,int selectedHour,int selectedMinute)
{
update(view,selectedHour,selectedMinute);
}
};
而且我不知道如何编写 update(view,selectedHour,selectedMinute) 的代码;谁能帮帮我...
最佳答案
您是否尝试过关注 tutorial on the developers page对于时间选择器?
编辑:
好的,按照教程,我们有了用于显示时间的 TextView 的更新方法:
private void updateDisplay() {
mTimeDisplay.setText(
new StringBuilder()
.append(pad(mHour)).append(":")
.append(pad(mMinute)));
}
private static String pad(int c) {
if (c >= 10)
return String.valueOf(c);
else
return "0" + String.valueOf(c);
}
将为用户选择时间创建的对话框:
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case TIME_DIALOG_ID:
return new TimePickerDialog(this,
mTimeSetListener, mHour, mMinute, false);
}
return null;
}
这里是我要添加您想要的限制的地方,即用户设置时间时的回调方法。你需要获取当前的小时和分钟,如果用户选择过去的时间,你不显示他的更改并向他发送 Toast 或其他东西。
使用日历你可以很容易地得到它:
Calendar c = Calendar.getInstance();
// the callback received when the user "sets" the time in the dialog
private TimePickerDialog.OnTimeSetListener mTimeSetListener =
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
if (mHour >= Integer.getInteger(c.get(Calendar.HOUR_OF_DAY)) && mMinute >= Integer.getInteger(c.get(Calendar.MINUTE))) {
mHour = hourOfDay;
mMinute = minute;
updateDisplay();
} else
//Display a toast or something to inform the user that he can't pick a past time.
}
现在,如果您希望用户无法在您创建的对话框中选择以前的时间,您必须创建自己的小时选择屏幕,因为 TimePickerDialog 对您可以选择的值没有限制。
希望对您有所帮助!
关于android - 如何使android时间选择器不允许选择过去的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9188427/