タイムピッカーを特定の開始時刻と終了時刻にブロックすることを計画しています。そのために、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);
メソッド呼び出しとスタックオーバーフローの例外の取得.botは(期待どおりに)何時間も更新されます。したがって、誰かがコードスニペットを見て問題を見つけた場合は、私に知らせてください。どんな助けでもありがたいです。
前もって感謝します。