如何在Android CalendarView上仅显示特定月份?

时间:2017-01-23 15:48:29

标签: android android-calendar calendarview

我想在CardView 上显示特定月份而不使用 NEXT和PREVIOUS箭头来浏览日历。如果我想在2010年2月展示用户必须只看到2010年2月。他们不能去下一个月或上个月。

我按照this Stack Overflow回答来显示特定的月份,但这对我不起作用。它显示我案件的当前日期和月份的所有时间。我不确定是否可以禁用NEXT-PREVIOUS导航。

我的XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="megaminds.dailyeditorialword.Fragments.CalendarViewFragment">

<CalendarView
    android:id="@+id/calendarViewT"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:firstDayOfWeek="7">

</CalendarView>

我的片段类的

onCreateView

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_calendar_view, container, false);

    int year = 2010, month = 2, day = 1;

    CalendarView calendarView = (CalendarView) view.findViewById(R.id.calendarViewT);
    Calendar calendar = Calendar.getInstance();
    calendar.set(year, month, day); //want to show full month of February 2010

    calendarView.setMinDate(calendar.getTimeInMillis());

    return view;
}

如何在没有下次导航的情况下显示2月份?

2 个答案:

答案 0 :(得分:4)

Calendar febFirst=Calendar.getInstance();

febFirst.set(2017, 1, 1, 0, 0, 0);

calendar.setMinDate(febFirst.getTimeInMillis());

Calendar febLast=Calendar.getInstance();

febLast.set(2017, 2, 0, 0, 0, 0);

calendar.setMaxDate(febLast.getTimeInMillis());
calendar.setDate(febFirst.getTimeInMillis());

其中calendarCalendarView

CalendarView, locked to February 2017, on Nexus 5 running Android 6

答案 1 :(得分:1)

int day = 16;
int month =8;
int year =2017;
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month); calendar.set(Calendar.DAY_OF_MONTH, day);
     long milliTime = calendar.getTimeInMillis();
mCalendarView.setDate (milliTime, true, true); 

此处mCalendarView是Android日历视图