這是新的默認DatePickerDialog
部件的樣子,它是Android 5.0以後出現:Android的棉花糖自定義日曆/日期選擇器
這不太受我的項目經理很喜歡。他們想要的是「老式」全息日期選取器,因爲它曾經是棉花糖之前&棒棒糖。事情是這樣的:
我面前兩個選擇:
- 使用具有相同的外觀由別人開發的現有日曆控件和如上感覺。
- 使用完整的日曆功能創建我自己的日曆小部件。
如果我要創建我自己的小部件,那麼創建用戶界面非常簡單。我的問題是,我該如何編寫這種日曆的業務邏輯,即如何使用真實數據來支持它?我如何計算閏年和不同月份的天數? 最重要的是,我需要三個NumberPicker
s 在最小和最大範圍內保持同步。它應該不是可以滾動超出最大和最小限制。這是我無法解決的問題。
這是我到目前爲止已經完成:
- 我用
NumberPicker
小部件DialogFragment
, 內,我用setMinValue()
和setMaxValue()
設定範圍每個NumberPicker
。 當了一年的變化(比如2011至2012年),我用
cal = new GregorianCalendar(y, m, d); daysInMonth = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
描述here計算當月的天數 。
- 當從十二月用戶滾動到一月或一月至 12月,我以編程方式滾動年選擇器描述 here遞增或分別 遞減。
- 通過使用
setWrapSelectorWheel()
,防止日間,月份和年份的選取器滾動超過其最小值和最大值。
所以我的問題是,是否有一個預先存在的小部件,如這個我可以使用?另外,是否有辦法用真實日曆數據備份NumberPicker
,並讓它們在最短和最長日期範圍內同步滾動?請指導我。所有的答案將不勝感激。
編輯:
雖然給出答案的作品,值得注意的是,有一個更好的方法:在DialogFragment
包裝一DatePicker
。
你無關壓延業務邏輯。只需使用Calendar API並與您的用戶界面一起玩。 –
@PankajKumar:Calendar API可以在這裏使用嗎?我的主要問題是在滾動月份時同步滾動三個採樣器,並防止採樣器滾動超過最小最大範圍(再次同步)... –