2012-08-29 78 views
-1

我打算阻止時間選擇器到一個特定的開始時間和結束時間。爲此,我設置TimeChangedListener並重寫onTimeChanged方法。下面是onTimeChanged()的實現。問題與阻止Android的Native TimePicker阻止一天中的某些小時

@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

爲什麼表決投票? – Raj

回答

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及以下。