我希望有一个允许用户只选择月份和年份的日历。是否有任何第三方小部件可以让我这样做?我知道日期滑块(http://i.stack.imgur.com/BDFls.png),它允许我创建一个用户可以选择月份和年份的对话框,但是有一个小部件类似于我在下面发布的内容吗?或者我必须自己创建吗?
答案 0 :(得分:1)
我会推荐CalDroid。它具有自定义选项,允许您创建所需的效果。
编辑:阅读项目GitHub上的文档:
Caldroid片段包括4个主要部分:
1)月份标题视图:显示月份和年份(例如2013年3月)
2)导航箭头:导航到下个月或上个月
3)工作日gridview:仅包含1行和7列。显示“SUN,MON,TUE,WED,THU,FRI,SAT”
4)无限视图寻呼机,允许用户向左/向右滑动以更改月份。此库取自https://github.com/antonyt/InfiniteViewPager
数字(1)似乎就是你所需要的。
答案 1 :(得分:0)
就个人而言,对于这个相当简单的用例,我不打扰一些第三方的东西,你不能轻易调试/维护。我使用两个ViewFlipper - 一个月份,一个白天。 ViewFlipper
支持动画,因此当用户旋转到一个月/天时,您可以获得一些漂亮的物理效果。
答案 2 :(得分:0)
是的,有Calendar Times Square为您提供了一个日历,然后是一种从日期中选择的方式:
首先,将日历导入您的项目。
然后,按以下方式显示:
//get the current date:
Calendar firstYear = Calendar.getInstance();
Calendar lastYear = Calendar.getInstance();
firstYear.add(Calendar.YEAR, -10);
lastYear.add(Calendar.YEAR, 10);
// to declare the calendar with the current date and make it scrollable for a past year and an upcoming year
final CalendarPickerView calendar = (CalendarPickerView) findViewById(R.id.calendar_view);
calendar.init(firstYear.getTime() , lastYear.getTime())
.withSelectedDate(Calendar.getInstance().getTime());
然后,当想要保存所选日期时:
Date new_date = calendar.getSelectedDate();
Calendar calendar = Calendar.getInstance();
calendar.setTime(new_date);
// to make sure it saved to the system
if (ShellInterface.isSuAvailable()) {
ShellInterface.runCommand("chmod 666 /dev/alarm");
SystemClock.setCurrentTimeMillis(calendar.getTimeInMillis());
ShellInterface.runCommand("chmod 664 /dev/alarm");
}