شرح أداه التقويم Calendar في الاندرويد

البرنامج التعليمي لعرض التقويم Calendar مع مثال في Android Studio

في Android ، تمت إضافة أداة عرض التقويم في المستوى 11 من واجهة برمجة التطبيقات (الإصدار 3.0 من Android) مما يعني أن طريقة العرض هذه مدعومة فقط في الجهاز الذي يعمل بنظام Android 3.0 والإصدار الأحدث. يتم استخدامه لعرض واختيار التواريخ.

عرض التقويم في Android

النطاق المدعوم للتواريخ في هذا التقويم قابل للتكوين. يمكن للمستخدم تحديد تاريخ من خلال الضغط عليه / النقر فوقه ويمكنه أيضًا التمرير والعثور على التقويم إلى التاريخ المطلوب. يمكن للمطور أيضًا تعيين الحد الأدنى والحد الأقصى للتاريخ المعروض في  عرض التقويم .


رمز XML لعرض التقويم Calendar View  الأساسي:

<CalendarView
    android:id="@+id/simpleCalendarView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />
  

عرض التقويم


طرق مهمة لعرض التقويم Calendar View :

دعونا نناقش بعض الطرق المهمة لعرض التقويم والتي قد يتم استدعاؤها من أجل إدارة CalendarView .

1. getDate (): تُستخدم هذه الطريقة للحصول على التاريخ المحدد لـ CalendarView بالمللي ثانية منذ 1 يناير 1970 00:00:00 في المنطقة الزمنية المفضلة للمستخدم. ترجع هذه الطريقة قيمة نوع طويلة للتاريخ المحدد.

أدناه نحصل على CalendarView المحدد بالمللي ثانية.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    long selectedDate = simpleCalendarView.getDate(); // get selected date in milliseconds
  

2. setDate (تاريخ طويل): تُستخدم هذه الطريقة لتعيين التاريخ المحدد بالمللي ثانية منذ 1 يناير 1970 00:00:00 في المنطقة الزمنية المفضلة للمستخدم.

أدناه قمنا بتعيين التاريخ المحدد بالمللي ثانية لـ CalendarView.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    simpleCalendarView.setDate(1463918226920L); // set selected date 22 May 2016 in milliseconds
  

setDate في التقويم عرض Android

3. setFirstDayOfWeek (int firstDayOfWeek): تُستخدم هذه الطريقة لتعيين اليوم الأول من الأسبوع.

أدناه قمنا بتعيين القيمة 2 تعني يوم الاثنين كأول يوم من الأسبوع.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    simpleCalendarView.setFirstDayOfWeek(2); // set Monday as the first day of the week
  

setFirstDayOfWeek في CalendarView Android

4. getFirstDayOfWeek ():  تُستخدم هذه الطريقة للحصول على اليوم الأول من الأسبوع. ترجع هذه الطريقة قيمة نوع int.

أدناه نحصل على اليوم الأول من أسبوع CalendarView.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    int firstDayOfWeek= simpleCalendarView.getFirstDayOfWeek(); // get first day of the week
  

5. setMaxDate (long maxDate):  تُستخدم هذه الطريقة لتعيين الحد الأقصى للتاريخ الذي يدعمه thisCalendarView بالمللي ثانية منذ 1 يناير 1970 00:00:00 في المنطقة الزمنية المفضلة للمستخدم.

أدناه قمنا بتعيين القيمة الطويلة للتاريخ الأقصى الذي يدعمه CalendarView.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    simpleCalendarView.setMaxDate(1463918226920L); // set 22nd May 2016 as max date supported by this CalendarView
  

setMaxDate في CalendarView Android

6. getMaxDate (): تُستخدم هذه الطريقة للحصول على أقصى تاريخ مدعوم بواسطة CalendarView هذا بالمللي ثانية منذ 1 يناير 1970 00:00:00 في المنطقة الزمنية المفضلة للمستخدم. ترجع هذه الطريقة قيمة نوع طويلة للتاريخ الأقصى الذي يدعمه CalendarView هذا.

أدناه ، قمنا أولاً بتعيين القيمة الطويلة للتاريخ الأقصى ثم نحصل على القيمة القصوى التي يدعمها CalendarView.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    simpleCalendarView.setMaxDate(1463918226920L); // set max date supported by this CalendarViewlong maxDate= simpleCalendarView.getMaxDate(); // get max date supported by this CalendarView
  

7. setMinDate (طويل minDate): تُستخدم هذه الطريقة لتعيين الحد الأدنى للتاريخ الذي يدعمه CalendarView هذا بالمللي ثانية منذ 1 يناير 1970 00:00:00 في المنطقة الزمنية المفضلة للمستخدم.

أدناه قمنا بتعيين القيمة الطويلة للحد الأدنى من التاريخ الذي يدعمه CalendarView.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    simpleCalendarView.setMinDate(1463918226920L); // set min date supported by this CalendarView
  

8. getMinDate (): تُستخدم هذه الطريقة للحصول على الحد الأدنى للتاريخ المدعوم بواسطة thisCalendarView بالمللي ثانية منذ 1 يناير 1970 00:00:00 في المنطقة الزمنية المفضلة للمستخدم. تقوم هذه الطريقة بإرجاع قيمة نوع طويلة للحد الأدنى من التاريخ الذي يدعمه CalendarView هذا.

أدناه ، قمنا أولاً بتعيين القيمة الطويلة للحد الأدنى للتاريخ ثم نحصل على الحد الأدنى من القيمة التي يدعمها CalendarView.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    simpleCalendarView.setMinDate(1463918226920L); // set min date supported by this CalendarViewlong minDate= simpleCalendarView.getMinDate(); // get min date supported by this CalendarView
  

9. setShowWeekNumber (boolean showWeekNumber): تُستخدم هذه الطريقة لإظهار أو إخفاء رقم أسبوع CalendarView. في هذه الطريقة قمنا بتعيين قيمة النوع المنطقي تعني صواب أو خطأ.

أدناه قمنا بتعيين القيمة الحقيقية لعرض أرقام الأسبوع في CalendarView.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    simpleCalendarView.setShowWeekNumber(true); // set true value for showing the week numbers.
  

setShowWeekNumber في التقويم عرض Android

10. getShowWeekNumber (): تُستخدم هذه الطريقة للتحقق مما إذا كان رقم الأسبوع معروضًا أم لا. ترجع هذه الطريقة قيمة نوع منطقي تعني صواب أو خطأ. صواب يشير إلى أن أرقام الأسبوع معروضة بينما يشير الخطأ "خطأ" إلى أن أرقام الأسبوع مخفية حاليًا.

أدناه نتحقق مما إذا كان رقم الأسبوع معروضًا حاليًا أم لا.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    simpleCalendarView.getShowWeekNumber(); // checks whether the week number are shown or not.
  

11. getSelectedDateVerticalBar (): تُستخدم هذه الطريقة للحصول على الرسم القابل للرسم ، أي يُستخدم للشريط الرأسي الموضح في بداية التاريخ المحدد وفي نهايته. تم إهمال هذه الطريقة في المستوى 23 من واجهة برمجة التطبيقات ، لذا لم تعد مستخدمة بواسطة نمط المواد CalendarView.

أدناه نحصل على تطبيق قابل للرسم للشريط العمودي الموضح في بداية ونهاية التاريخ المحدد.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    Drawable verticalBar=simpleCalendarView.getSelectedDateVerticalBar(); // get the applied drawable for the vertical bar
  

12. setSelectedDateVerticalBar (Drawabledrawable): تُستخدم هذه الطريقة لتعيين الرسم القابل للرسم للشريط الرأسي الموضح في بداية التاريخ المحدد وفي نهايته. تم إهمال هذه الطريقة في المستوى 23 من واجهة برمجة التطبيقات ، لذا لم تعد مستخدمة بواسطة نمط المواد CalendarView.

أدناه قمنا بتعيين الرسم القابل للرسم للشريط العمودي الموضح في بداية ونهاية التاريخ المحدد.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    simpleCalendarView.setSelectedDateVerticalBar(getResources().getDrawable(R.drawable.ic_launcher)); // set the drawable for the vertical bar
  

setSelectedDateVerticalBar في التقويم عرض Android

13. setSelectedDateVerticalBar (int ResourceId): تُستخدم هذه الطريقة لتعيين لون الشريط العمودي المعروض في بداية التاريخ المحدد وفي نهايته. تم إهمال هذه الطريقة في المستوى 23 من واجهة برمجة التطبيقات ، لذا لم تعد مستخدمة بواسطة نمط المواد CalendarView.

أدناه قمنا بتعيين اللون الأزرق للشريط العمودي الموضح في بداية ونهاية التاريخ المحدد.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    simpleCalendarView.setSelectedDateVerticalBar(Color.BLUE); // set the color for the vertical bar
  

14. setSelectedWeekBackgroundColor (لون int): تُستخدم هذه الطريقة لتعيين اللون في خلفية الأسبوع المحدد من CalendarView. تم إهمال هذه الطريقة في المستوى 23 من واجهة برمجة التطبيقات ، لذا لم تعد مستخدمة بواسطة نمط المواد CalendarView.

أدناه قمنا بتعيين اللون الأسود في خلفية الأسبوع المحدد من CalendarView.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    simpleCalendarView.setSelectedWeekBackgroundColor(Color.BLACK); // set black color in the background of selected week

setSelectedWeekBackgroundColor في التقويم عرض Android

15. getSelectedWeekBackgroundColor (): تُستخدم هذه الطريقة للحصول على لون الخلفية للأسبوع المحدد من CalendarView. ترجع هذه الطريقة قيمة نوع int. تم إهمال هذه الطريقة في المستوى 23 من واجهة برمجة التطبيقات ، لذا لم تعد مستخدمة بواسطة نمط المواد CalendarView.

أدناه نحصل على اللون المطبق في خلفية الأسبوع المحدد من CalendarView.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    int backColor=simpleCalendarView.getSelectedWeekBackgroundColor(); // get applied color in the background of selected week
  

16. getWeekNumberColor (): تُستخدم هذه الطريقة للحصول على لون أرقام الأسبوع. ترجع هذه الطريقة قيمة نوع int. تم إهمال هذه الطريقة في المستوى 23 من واجهة برمجة التطبيقات ، لذا لم تعد مستخدمة بواسطة نمط المواد CalendarView.

أدناه نحصل على اللون المطبق لأرقام الأسبوع.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    int weekNumberColor=simpleCalendarView.getWeekNumberColor(); // get applied color of week number
  

17. setWeekNumberColor (لون int): تستخدم هذه الطريقة لتعيين اللون لأرقام الأسبوع. تم إهمال هذه الطريقة في المستوى 23 من واجهة برمجة التطبيقات ، لذا لم تعد مستخدمة بواسطة نمط المواد CalendarView ..

أدناه نضع اللون الأحمر لأرقام الأسبوع.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    simpleCalendarView.setWeekNumberColor(Color.RED); // set red color for the week number
  

18. setWeekSeparatorLineColor (اللون int): تستخدم هذه الطريقة لتعيين اللون لخط فاصل الأسبوع. تم إهمال هذه الطريقة في المستوى 23 من واجهة برمجة التطبيقات ، لذا لم تعد مستخدمة بواسطة نمط المواد CalendarView.

أدناه قمنا بتعيين اللون الأخضر لخط فاصل الأسبوع.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    simpleCalendarView.setWeekSeparatorLineColor(Color.GREEN); // set green color for the week separator line.
  

19. getWeekSeparatorLineColor (): تستخدم هذه الطريقة للحصول على لون خط فاصل الأسبوع. ترجع هذه الطريقة قيمة نوع int. تم إهمال هذه الطريقة في المستوى 23 من واجهة برمجة التطبيقات ، لذا لم تعد تُستخدم بواسطة طريقة عرض التقويم بنمط المواد.

أدناه نحصل على اللون المطبق لخط فاصل الأسبوع.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    int weekSeperatorLineColor=simpleCalendarView.getWeekSeparatorLineColor(); // get applied color of week seperator line
  

20. setUnfocusedMonthDateColor (int color): تُستخدم هذه الطريقة لتعيين اللون لتواريخ الشهر غير المركّز. تم إهمال هذه الطريقة في المستوى 23 من واجهة برمجة التطبيقات ، لذا لم تعد تُستخدم بواسطة طريقة عرض التقويم بنمط المواد.

أدناه نضع اللون الرمادي لتواريخ شهر غير مركّز.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    simpleCalendarView.setUnfocusedMonthDateColor(Color.GRAY); // set gray color for the dates of an unfocused month
  

21. getUnfocusedMonthDateColor (): تستخدم هذه الطريقة للحصول على اللون لتواريخ شهر غير مركز. ترجع هذه الطريقة قيمة نوع int. تم إهمال هذه الطريقة في المستوى 23 من واجهة برمجة التطبيقات ، لذا لم تعد مستخدمة بواسطة نمط المواد CalendarView.

أدناه نحصل على اللون المطبق لتواريخ شهر غير مركّز.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    int unfocusedMonthDateColor=simpleCalendarView.getUnfocusedMonthDateColor(); // get the color for the dates of an unfocused month
  

22. setFocusedMonthDateColor (لون int): تُستخدم هذه الطريقة لتعيين اللون لتواريخ الشهر المركز. تم إهمال هذه الطريقة في المستوى 23 من واجهة برمجة التطبيقات ، لذا لم تعد مستخدمة بواسطة نمط المواد CalendarView.

أدناه نضع اللون الأصفر لتواريخ الشهر المركز.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    simpleCalendarView.setFocusedMonthDateColor(Color.YELLOW); // set yellow color for the dates of focused month
  

23. getFocusedMonthDateColor ():  تستخدم هذه الطريقة للحصول على اللون لتواريخ الشهر المركز. ترجع هذه الطريقة قيمة نوع int. تم إهمال هذه الطريقة في المستوى 23 من واجهة برمجة التطبيقات ، لذا لم تعد مستخدمة بواسطة نمط المواد CalendarView.

أدناه نحصل على اللون المطبق لتواريخ الشهر المحدد.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    int focusedMonthDateColor=simpleCalendarView.getFocusedMonthDateColor(); // get the color for the dates of focused month
  

24. setOnDateChangeListener (OnDateChangeListenerlistener): تستخدم هذه الطريقة لتعيين المستمع ليتم إخطاره عند تغيير التاريخ المحدد.

نعرض أدناه كيفية استخدام حدث setOnDateChangeListener في CalendarView.

CalendarView simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    // perform setOnDateChangeListener event on CalendarView
    simpleCalendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
    @Override
    public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
    // add code here
    }
    });
  

سمات وخصائص  CalendarView :

الآن دعنا نناقش بعض السمات الشائعة لـ CalendarView التي تساعدنا على تهيئتها في تخطيطنا ( xml ).

1. يتم استخدام السمة id : id لتعريف CalendarView بشكل فريد.

أدناه قمنا بتعيين معرف CalendarView الذي يتم استخدامه لتعريفه بشكل فريد.

<CalendarView
    android:id="@+id/simpleCalendarView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" /> <!--  id of the CalendarView that is used to uniquely identify it -->
  

2. firstDayOfWeek: تُستخدم هذه السمات لتعيين اليوم الأول من الأسبوع وفقًا للتقويم. يمكننا أيضًا تعيين هذه الوسائل برمجيًا فيفئة جافا باستخدام طريقة setFirstDayOfWeek (int firstDayOfWeek)

أدناه قمنا بتعيين القيمة 2 تعني يوم الاثنين كأول يوم من الأسبوع.

<CalendarView
    android:id="@+id/simpleCalendarView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:firstDayOfWeek="2" />
    <!-- set the 2 value means Monday as the first day of the week -->
  

3. focusMonthDateColor : تُستخدم هذه السمة لتعيين اللون لتواريخ الشهر المُركز عليه. يمكننا أيضًا تعيين هذه الوسيلة برمجيًا فيفئة جافا باستخدام طريقة setFocusedMonthDateColor (لون int).

أدناه نضع اللون الأصفر لتواريخ الشهر المركز.

<CalendarView
    android:id="@+id/simpleCalendarView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:firstDayOfWeek="2"
    android:focusedMonthDateColor="#ff0" />
    <!-- set the yellow color for the dates of focused month -->
  

4. unocusedMonthDateColor: تُستخدم هذه السمة لتعيين اللون لتواريخ الشهر غير المركّز. يمكننا أيضًا تعيين هذه الوسائل برمجيًا فيفئة جافا باستخدام طريقة setUnfocusedMonthDateColor (لون int).

أدناه قمنا بتعيين اللون الأحمر لتواريخ الشهر المركز.

<CalendarView
    android:id="@+id/simpleCalendarView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:firstDayOfWeek="2"
    android:unfocusedMonthDateColor="#f00" />
    <!-- set the yellow color for the dates of an unfocused month -->
  

5. maxDate: تُستخدم هذه السمة لتعيين الحد الأقصى للتاريخ الذي يدعمه CalendarView هذا. تستخدم هذه السمة تنسيق mm / dd / yyyy. يمكننا أيضًا تعيين هذه الوسيلة برمجيًا في فئة java باستخدام setMaxDate (long maxDate)

أدناه قمنا بتعيين 05/22/2017 كتاريخ أقصى مدعوم بواسطة CalendarView.

<CalendarView
    android:id="@+id/simpleCalendarView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:firstDayOfWeek="2"
    android:maxDate="05/22/2017" />
    <!-- set maximal date supported by this CalendarView -->
  

6. minDate: يتم استخدام هذه السمة لتعيين الحد الأدنى للتاريخ الذي يدعمه CalendarView هذا. تستخدم هذه السمة تنسيق mm / dd / yyyy. يمكننا أيضًا تعيين هذه الوسيلة برمجيًا في فئة java باستخدام setMinDate (long minDate)

أدناه قمنا بتعيين 05/22/2016 باعتباره التاريخ الأدنى الذي يدعمه CalendarView.

<CalendarView
    android:id="@+id/simpleCalendarView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:firstDayOfWeek="2"
    android:minDate="05/22/2016" />
    <!-- set minimal date supported by this CalendarView -->
  

7. selectedDateVerticalBar : تُستخدم هذه السمة لتعيين الرسم / اللون للشريط العمودي الموضح في بداية ونهاية التاريخ المحدد. يمكننا أيضًا تعيين هذه الوسائل برمجيًا في فئة جافا باستخدام طريقة setSelectedDateVerticalBar (int ResourceId) أو طريقة setSelectedDateVerticalBar (Drawable drawable).

أدناه قمنا بتعيين اللون الأسود للشريط العمودي الموضح في بداية ونهاية التاريخ المحدد.

<CalendarView
    android:id="@+id/simpleCalendarView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:firstDayOfWeek="2"
    android:selectedDateVerticalBar="@color/black" />
    <!-- set black color for the vertical bar shown at the beginning and at the end of the selected date -->
  

8. selectWeekBackgroundColor: تُستخدم هذه السمة لتعيين اللون في خلفية الأسبوع المحدد من CalendarView. يمكننا أيضًا ضبط هذا برمجيًا في فئة java باستخدام طريقة setSelectedWeekBackgroundColor (int color).

أدناه قمنا بتعيين اللون الأحمر في خلفية الأسبوع المحدد من CalendarView.

<CalendarView
    android:id="@+id/simpleCalendarView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:firstDayOfWeek="2"
    android:selectedWeekBackgroundColor="#f00" />
    <!-- set red in the background of selected week of CalendarView -->
  

9. showWeekNumber: تُستخدم هذه السمة لإظهار أو إخفاء رقم الأسبوع من CalendarView. في هذه الطريقة قمنا بتعيين قيمة النوع المنطقي تعني صواب أو خطأ. يمكننا أيضًا ضبط هذه الوسائل برمجيًا في فئة جافا باستخدام طريقة setShowWeekNumber (boolean showWeekNumber).

أدناه قمنا بتعيين القيمة الخاطئة لإخفاء أرقام الأسبوع في CalendarView.

<CalendarView
    android:id="@+id/simpleCalendarView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:firstDayOfWeek="2"
    android:showWeekNumber="false" />
    <!-- set the false value for hiding the week numbers of CalendarView. -->
  

10. weekNumberColor : تُستخدم هذه السمة لتعيين اللون لأرقام الأسبوع.

أدناه نضع اللون الأحمر لأرقام الأسبوع. يمكننا أيضًا ضبط هذه الوسيلة برمجيًا في فئة جافا باستخدام طريقة setWeekNumberColor (int color).

<CalendarView
    android:id="@+id/simpleCalendarView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:firstDayOfWeek="2"
    android:weekNumberColor="#f00" />
    <!-- set red color for the week numbers of CalendarView. -->
  

11. weekSeparatorLineColor: تُستخدم هذه السمة لتعيين اللون لخط فاصل الأسبوع. يمكننا أيضًا ضبط هذه الوسيلة برمجيًا في فئة جافا باستخدام طريقة setWeekSeparatorLineColor (int color).

أدناه قمنا بتعيين اللون الأخضر لخط فاصل الأسبوع.

<CalendarView
    android:id="@+id/simpleCalendarView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:firstDayOfWeek="2"
    android:weekSeparatorLineColor="#0f0" />
    <!-- set green color for the week seperator line -->
  

مثال عرض التقويم Calendar View في Android Studio :

يوجد أدناه مثال CalendarView حيث نعرض CalendarView للحد الأدنى والأقصى من التاريخ المدعوم. في هذا حددنا 01/2016 الحد الأدنى و 01/01/2018 كتاريخ أقصى لعرض التقويم الحالي. قمنا بتعيين لون تاريخ شهر مركّز وغير مركّز واستخدمنا أيضًا بعض الوظائف والسمات الأخرى لمزيد من التخصيص في CalendarView. أخيرًا نقوم بتنفيذ حدث setOnDateChangeListener ليتم إخطارنا عند تغيير التاريخ المحدد. عندما يقوم المستخدم بالنقر / النقر فوق أي تاريخ ، سيتم عرض التاريخ المحدد باستخدام Toast.

يمكنك أدناه تنزيل كود مشروع Android Studio ، والاطلاع على الإخراج النهائي والشرح خطوة بخطوة:

تحميل الكود ؟

مثال عرض التقويم في Android Studio

الخطوة 1:  قم بإنشاء مشروع جديد وقم بتسميته CalendarViewExample

الخطوة 2:  افتح res -> layout -> activity_main. xml (أو) main. 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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <!-- CalendarView with monday as first day and minmal and maximal day -->
    <CalendarView
    android:id="@+id/simpleCalendarView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:firstDayOfWeek="2"
    android:maxDate="01/01/2018"
    android:minDate="01/01/2016" />


    </RelativeLayout>

الخطوة 3:  افتح src -> package -> MainActivity.java

في هذه الخطوة نفتح MainActivity ونضيف الكود لبدء عرض التقويم. في هذا قمنا بتعيين لون خلفية الأسبوع المحدد ولون خط فاصل الأسبوع وأخيرًا تنفيذ حدث setOnDateChangeListener ليتم إخطاره عند تغيير التاريخ المحدد. عندما يقوم المستخدم بالنقر / النقر فوق أي تاريخ ، سيتم عرض التاريخ المحدد باستخدام Toast.

package example.abhiandroid.calenderviewexample;

    import android.graphics.Color;
    import android.graphics.drawable.Drawable;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.CalendarView;
    import android.widget.Toast;

    public class MainActivity extends AppCompatActivity {

    CalendarView simpleCalendarView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    simpleCalendarView = (CalendarView) findViewById(R.id.simpleCalendarView); // get the reference of CalendarView
    simpleCalendarView.setFocusedMonthDateColor(Color.RED); // set the red color for the dates of  focused month
    simpleCalendarView.setUnfocusedMonthDateColor(Color.BLUE); // set the yellow color for the dates of an unfocused month
    simpleCalendarView.setSelectedWeekBackgroundColor(Color.RED); // red color for the selected week's background
    simpleCalendarView.setWeekSeparatorLineColor(Color.GREEN); // green color for the week separator line
    // perform setOnDateChangeListener event on CalendarView
    simpleCalendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
    @Override
    public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
    // display the selected date by using a toast
    Toast.makeText(getApplicationContext(), dayOfMonth + "/" + month + "/" + year, Toast.LENGTH_LONG).show();
    }
    });
    }


    }

المخرجات :

الآن قم بتشغيل التطبيق وسترى التقويم مفتوحًا. انقر الآن على أي تاريخ وسيتم عرضه على الشاشة باسم Toast. حاول أيضًا التمرير لأعلى ولأسفل لمعرفة الحد الأقصى والأدنى لتاريخ معين للتقويم.