我打算将时间选择器阻止到特定的开始时间和结束时间。为此我设置TimeChangedListener并覆盖onTimeChanged方法。下面是onTimeChanged()的实现。
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
//;super.onTimeChanged(view, hourOfDay, minute);
try{
boolean flag = true;
if (hourOfDay <= maxHour && hourOfDay >= minHour) {
if (hourOfDay == maxHour && hourOfDay == minHour) {
if (minute > maxMin)
flag = false;
else if (minute < minMin)
flag = false;
else if (minute == maxMin && minute == minMin) {
flag = false;
} else if (minute == maxMin) {
flag = false;
} else if (minute == minMin) {
flag = false;
}
} else if (hourOfDay == maxHour) {
if (minute > maxMin)
{
flag = false;
}
} else if (hourOfDay == minHour) {
if (minute < minMin)
flag = false;
}
if (flag) {
curHour = hourOfDay;
curMin = minute;
} else {
updateTime(curHour, curMin);
}
//(curYear, curMonth);
} else {
updateTime(curHour, curMin);
}
//view.updateDate(curYear, curMonth, curDay);
} catch (Exception e) {
Log.e("CustomTimePicker","error");
}
}
但是当我达到最短时间并尝试再次减少分钟时间时,使用此代码段,它将从第一个开始继续循环
updateTime(curHour, curMin);
方法调用和获取堆栈溢出exception.bot工作正常(如预期)几小时更新。 因此,如果有人看一下代码片段并找出问题,请告诉我。 任何帮助将不胜感激。
先谢谢。
答案 0 :(得分:0)
我认为这是updateTime的问题(curHour,curMin);或onTimeChanged(TimePicker视图,int hourOfDay,int分钟); android OS-v2.3.6及以下的方法。因为当我在具有android OS-v3.1及以上版本的设备上测试相同时它的工作正常。但在OS-v2.3.6及以下版本中我调用updateTime(curHour,curMin);在大约10分钟的时间里,onTimeChanged仅在9分钟内被调用。因此,当我达到最小分钟后的最小时间后,它将继续循环。
所以它是一个但是有updateTime(curHour,curMin);或onTimeChanged(TimePicker视图,int hourOfDay,int分钟); android OS-v2.3.6及以下的方法。