Android:创建日历以选择特定日期,或一年中的特定月份或特定年份

时间:2013-01-25 00:31:10

标签: android calendar datepicker

我希望在我的应用程序中创建3个不同的Calendar views,每个DatePicker由不同的按钮触发。

第一个是标准日历,允许您选择特定日期。 第二个是类似的,除了你只选择整个月而不是一天。 最后一个你只选择整年。

我意识到有一个CalendarView窗口小部件,但它不适用于低于11的API级别。

我见过一些习惯性的,但它们涉及很多课程,由其他人创建,我并不真的想依赖它们。我也研究了Calendar,因为它不一定需要看起来像{{1}}。如果每个日期选择器只有相关字段的微调器,那么也可以。

2 个答案:

答案 0 :(得分:0)

据我所知,你必须在这里自己动手。 android.util中有一个名为MonthDisplayHelper的小助手,对于显示6行日历网格的一些基本计算非常有用。除此之外,尽管相对频繁使用日历,但没有任何日历小部件或任何内置类。

答案 1 :(得分:0)

我设法找到了一个解决方案,无需使用其他项目或从头开始。它可能不是最好的解决方案,但它似乎对我来说非常好。

我使用DatePicker小部件而不是日历,因为它更简单,完全符合我的需要。我基本上删除了(View.GONE)日期选择器,直到选择了其中一个按钮(例如“选择完整日期”,“选择一年中的月份”,“选择年份”)。

在“选择完整日期”的第一种情况下,我只是将日期选择器设置为VISIBLE。这就是所需要的一切。

在“选择一年中的月份”的第二种情况下,我设置了日期选择器VISIBLE,但我也调用了一种方法,该方法使用Reflection来隐藏日期选择器的DAY部分。

最后一种情况如上所述,但我隐藏了日期选择器的DAYMONTH部分。

在所有情况下,日期选择器“设置日期”或“设置月份”或“设置年份”下方会出现一个新按钮(取决于选择的初始按钮)。每个按钮都将从日期选择器中提取相关的字段信息。