Android应用中的日历可选择月份和年份

时间:2014-12-08 13:02:52

标签: android xml android-layout calendar widget

我希望有一个允许用户只选择月份和年份的日历。是否有任何第三方小部件可以让我这样做?我知道日期滑块(http://i.stack.imgur.com/BDFls.png),它允许我创建一个用户可以选择月份和年份的对话框,但是有一个小部件类似于我在下面发布的内容吗?或者我必须自己创建吗?

enter image description here

3 个答案:

答案 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");
        }