هم اکنون عضو شوید

ورود

فراموشی گذرواژه

گذروازه خود را فراموش کردید ؟

ورود

عضو شوید

با عضویت در سایت از امکانات فوق العاده بهرمنده خواهید شد.

آموزش CalendarView فارسی در برنامه نویسی اندروید

آموزش CalendarView فارسی در برنامه نویسی اندروید

سلام دوستان امیدوارم حالتان خوب باشد در این سری از آموزش برنامه نویسی اندروید به آموزش CalendarView فارسی در برنامه نویسی اندروید می پردازیم نام دیگر آن PersianCalendarView است این کتاب خانه بسیار قدرتمند است و در بیشتر آپ های ایرانی مورد استفاده قرار گرفته است  در ادامه می توانید پیش نمایشی از آن را مشاهده کنید با ما همراه باشید.

 

 

حجم آن کمی بالا است ولی کامل است.

برای استفاده از این کتاب خانه باید ابتدا آن را به پروژه اضافه کنید.

ابتدا وارد فایل Build.gradle از نوع Top Level شده و در بخش repositories خط زیر را اضافه کنید.

وارد فایل Build.gradle از نوع Module شده و در بخش dependencies خط زیر را اضافه کنید.

سپس پروژه را sync کنید. علت خطاهای گریدل را قبلا بررسی کرده ایم کافی است در سایت واژه Gradle را جستجو کنید.

برای اینکه Calendar را در Layout خود قرار دهید از کد زیر استفاده کنید.

app:pcv_colorBackground : رنگ پس زمینه را تنظیم می کند.

app:pcv_colorDayName : رنگ نام روز را تنظیم می کند.

app:pcv_colorHoliday : رنگ روز های تعطیل را تنظیم می کند.

app:pcv_colorHolidaySelected : رنگ روز تعطیل انتخاب شده را تنظیم می کند.

app:pcv_colorNormalDaySelected : رنگ روز های عادی انتخاب شده را تنظیم می کند.

app:pcv_colorNormalDay : رنگ روز ها را تنظیم می کند.

app:pcv_eventUnderlineColor : رنگ زیر خط را تنظیم  می کند.

برای handle کردن آن در اکتیویتی از کد زیر استفاده کنید.

این کتاب خانه شامل Event های ملی ایران می باشد ولی اگر خواستید یک Event خاص تعریف کنید از کد زیر استفاده کنید.

سه نوع Event تعریف کردیم اولی که نامش Custom event است و برای روز جاری تنظیم شده است.

دویمن Event که نامش Custom Event 2 است و بروی ۱۲ روز بعد تنظیم شده است.

سومین Event هم برای تاریخ خاصی تنظیم شده است.

اگر می خواهید رویداد یا همان Event روز خاصی را به دست بیارید مثل زیر عمل کنید.

کد بالا رویداد مربوط به امروز را به دست می آورد.

 

این آموزش هم به پایان رسید.

 

موفق و پیروز باشید.

درباره نویسنده

با زبان های برنامه نویسی C# , Java , Php به صورت تخصصی کار کردم و بیشتر وقتم رو در برنامه نویسی می گذرونم علاقه زیادی به ساخت اپلیکیشن اندروید دارم.

نظرها ( ۵۲ )

  1. SIna
    ۲۲, مرداد , ۱۳۹۶ در ۸:۰۲ ب.ظ

    لطفا آموزش لود PDF از SDCARD رو در برنامه به صورت مستقیم بگید ، خیلی نیازش دارم

    با تشکر از سایت عالی و کاملتون

  2. صاحبه
    ۲۳, مرداد , ۱۳۹۶ در ۱۲:۵۹ ب.ظ

    با سلام
    از آموزش های خوبتون ممنونم.میشه این آموزش رو با جزییات بیشتری بگید . مثلا هر کدوم کجا نوشته میشن؟ نمی دونم چرا خطا دارم

    • محمد حسین جعفری پور
      ۲۳, مرداد , ۱۳۹۶ در ۱:۲۴ ب.ظ

      در چه بخشی خطا دارید ؟

      • صاحبه
        ۲۴, مرداد , ۱۳۹۶ در ۵:۰۲ ب.ظ

        سلام .
        مثلا تو MainActivity عبارت persianCalendarVieW رو قرمز نشون میده و R , calender رو هم قرمز نشون میده .اندروید۲٫۳٫۳ دارم.ممنون

        • محمد حسین جعفری پور
          ۲۴, مرداد , ۱۳۹۶ در ۶:۱۰ ب.ظ

          کتاب خانه را اضافه کردید ؟

        • محمد حسین جعفری پور
          ۲۴, مرداد , ۱۳۹۶ در ۷:۲۱ ب.ظ

          شما باید مشکل کش داشته باشید اگر کتاب خانه را اضافه کردید از منوی File گزینه ی Invalidate Caches/Restart را بزنید مشکلتان برطرف می شود.

  3. پارسی
    ۶, آذر , ۱۳۹۶ در ۱۱:۲۰ ب.ظ

    با سلام و تشکر از سایت خوب و تدریس عالی شما
    من می خوام با استفاده از این کتابخانه رویداد شخصی بنویسم و روز هایی که رویداد من هست رنگش عوض بشه و با رویداد های خودش کاری نداشته باشم
    اگر میشه راهنمایی فرمایید
    با تشکر

  4. mina
    ۲۲, بهمن , ۱۳۹۶ در ۷:۲۱ ب.ظ

    سلام و خسته نباشید.. من این رو به اندروید استودیوم ایمپورت کردم و کدهایی که گفتید برای گذاشتن در Layout رو هم قرار دادم ولی نمیدونم چرا موقع اجرا نشون نمیده در بعضی کدهای xml اش دیدم که visibility ش رو gone گذاشته بود که visible هم کردم بازم مشکل حل نشد… میتونید راهنماییم کنین لطفا

    • محمد حسین جعفری پور
      ۲۲, بهمن , ۱۳۹۶ در ۹:۰۹ ب.ظ

      سلام و درود کتاب خانه تست شد مشکلی ندارد فقط دقت کنید minsdk رو برابر با ۱۷ قرار دهید ممکن است در هنگام لود خطایی پیش بیاید بخش Logcat رو هم بررسی کنید اگر از eclipse استفاده می کنید این کتاب خانه با eclipse تست نشده است .

      موفق باشید.

  5. ۲۱, اسفند , ۱۳۹۶ در ۳:۱۹ ب.ظ

    با سلام
    آیا امکانش هست که روزهای خاصی از تقویم که ما تعیین میکینیم رنگ پس زمینه ان عوض شود . اگر هست چگونه . با تشکر

    • محمد حسین جعفری پور
      ۲۱, اسفند , ۱۳۹۶ در ۷:۳۶ ب.ظ

      فکر می کنم دستورات زیر شاید به کارتان بیادش.

      موفق باشید.

  6. سجاد
    ۱۱, فروردین , ۱۳۹۷ در ۱:۰۴ ب.ظ

    با سلام زمان وارد کردن کتابخونه به استودیو این ارور رو دارم

    Error:(24, 13) Failed to resolve: com.github.roojin:persian-calendar-view:1.2.1
    Show in FileShow in Project Structure dialog

    • محمد حسین جعفری پور
      ۱۱, فروردین , ۱۳۹۷ در ۴:۴۹ ب.ظ

      قندشکن باید فعال باشد.
      از آموزش زیر استفاده کنیدو
      http://programchi.ir/?s=gradle+failed+sync
      موفق باشید.

      • سجاد
        ۱۱, فروردین , ۱۳۹۷ در ۶:۳۱ ب.ظ

        روشنه چند تا از ارور ها رو رفع کرد ولی این ارور به هیچ کدومشون رفع نشد به سایت گیت هاب رفتم ورژن عوض شده بود وارد کردم ولی متاسفانه باز هم سینک نشد و همچنان این ارور رو دارم

        • محمد حسین جعفری پور
          ۱۱, فروردین , ۱۳۹۷ در ۸:۱۷ ب.ظ

          به تازگی تحریم ها سخت گیرانه تر شده البته از این نگذریم که ممکن است ورژن Sdk شما کمی پایین باشد. شما باید از پ***ر**وک***س***ی های غیر از آمریکایی مثل چینی و… استفاده کنید. (کتاب خانه تست شد مشکلی ندارد.)
          موفق باشید.

  7. محمد را
    ۱۹, فروردین , ۱۳۹۷ در ۱۱:۲۸ ب.ظ

    با سلام خدمت شما ببخشید یه مشکل لطفان دوستان کمک کنن من میخوام به جای اینکه پیغام Tost نشون بده بریزه تو تکست ویو اگه میشه بگید چه کدی باید بزنم تکت ویو تعریف کردم ولی نمیدونم چه جوری ست تکست کنم

      • محمد را
        ۲۰, فروردین , ۱۳۹۷ در ۱۲:۱۱ ق.ظ

        باسلام من میخوام این رویداد هر روز رو بریزم

        تو این تکست ویو

        هر کاری میکنم نمیتون نمیدونم چه جوری بریزم

        • محمد حسین جعفری پور
          ۲۰, فروردین , ۱۳۹۷ در ۱۲:۲۶ ق.ظ

          سلام
          کد زیر را تست کنید.

          موفق باشید.

  8. ۱۷, خرداد , ۱۳۹۷ در ۱۱:۱۸ ب.ظ

    سلام، آقا این فایل رو از کجا باید دانلود کرد؟ میشه منو راهنمایی کنید؟!

    • محمد حسین جعفری پور
      ۱۷, خرداد , ۱۳۹۷ در ۱۱:۳۲ ب.ظ

      سلام فایلی جهت دانلود وجود ندارد سورس قرار گرفته است بهتر است یکم حوصله به خرج دهید و مطالعه کنید !

      موفق باید.

  9. سیدعلی
    ۳, تیر , ۱۳۹۷ در ۳:۲۰ ب.ظ

    سلام.کدی که برای handle کردن است باید درکجا قرار دهیم؟

  10. سیدعلی
    ۴, تیر , ۱۳۹۷ در ۳:۰۹ ب.ظ

    ببخشید . وقتی که کدهارا کپی میکنم همه عباراتgetTodayقرمزنشون میده . وgetCalendarزیرش خط قرمز داره.اگ میشه راهنمایی کنید

  11. سیدعلی
    ۴, تیر , ۱۳۹۷ در ۳:۲۹ ب.ظ

    امکانش هست importهاروبدین؟؟

    • محمد حسین جعفری پور
      ۴, تیر , ۱۳۹۷ در ۳:۴۶ ب.ظ

      خیر در دسترس نیست شما با یک Alt Enter ساده می تونید import کنید چندتا بیشتر نیست.

      • سیدعلی
        ۴, تیر , ۱۳۹۷ در ۳:۵۲ ب.ظ

        زمانی کهAlt+Enterمیزنم اینارونمایش میده:ٍEdit intention settings و ‘Disable’Split Declaration

  12. سیدعلی
    ۴, تیر , ۱۳۹۷ در ۴:۴۰ ب.ظ

    چطورمیشه انداره اعدادتقویم روتغیییرداد؟؟؟

    • محمد حسین جعفری پور
      ۴, تیر , ۱۳۹۷ در ۵:۴۰ ب.ظ

      فکر نمی کنم پشتیبانی بکند.

    • سروش
      ۱۲, مرداد , ۱۳۹۷ در ۹:۴۲ ب.ظ

      عبارت font size رو توی attribute هاش جستجو کنید

  13. سیدعلی
    ۴, تیر , ۱۳۹۷ در ۶:۴۳ ب.ظ

    چطورمیشه نام ماه و نام روز رو بدست اورد مثل (دوشنبه۴تیر۱۳۹۷)؟؟؟

  14. امیر
    ۲۸, تیر , ۱۳۹۷ در ۵:۲۲ ب.ظ

    با سلام،چیکار کنم تا همه ی رویداد های خودش پاک شه فقط رویداد های دستی ای که من توش وارد کردم بمونه

    • محمد حسین جعفری پور
      ۲۸, تیر , ۱۳۹۷ در ۵:۲۹ ب.ظ

      سلام اگر منظورتون ویرایش سورسش هست که باید کتاب خانه رو دانلود و سورس کدش رو تغییر بدید.

  15. سروش
    ۱۲, مرداد , ۱۳۹۷ در ۶:۲۸ ب.ظ

    خیلی خوبه فقط یه مشکل بزرگ داره اینکه مثل calendar view گوگل ماه و سال رو اون بالا نشون نمیده. نمیشه این مشکل رو حل کرد؟؟

    • محمد حسین جعفری پور
      ۱۲, مرداد , ۱۳۹۷ در ۶:۵۳ ب.ظ

      سلام و درود خیر کتاب خانه باگ دارد یعنی در حالت portrait نمایش داده می شود ول در حالت اصلی خیر

  16. ۲۵, مهر , ۱۳۹۷ در ۹:۲۵ ب.ظ

    سلام
    من برای اضافه کردن این کتابخانه به پروژم خیلی دردسر کشیدم این روش شما روهم امتحان کردم ولی بازم همون اررو های قبل رو نشون میده چن روز بیشتر برای تحویل پروژم وقت ندارم ممنون میشم اگر میتونین کمکم کنین نسخه یاندروید استودیوم ۲٫۱ هست فیلتر شکن هم روشنه
    Error:(4) Error retrieving parent for item: No resource found that matches the given name ‘android:TextAppearance.Material.Widget.Button.Inverse’.
    Error:(34) Error retrieving parent for item: No resource found that matches the given name ‘android:Widget.Material.Button.Colored’.
    Error:(3) Error retrieving parent for item: No resource found that matches the given name ‘android:TextAppearance.Material.Widget.Button.Borderless.Colored’.
    Error:(4) Error retrieving parent for item: No resource found that matches the given name ‘android:TextAppearance.Material.Widget.Button.Colored’.
    Error:Execution failed for task ‘:app:processDebugResources’.
    > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘C:\Users\arsalani\AppData\Local\Android\android-sdk\build-tools\android-6.0\aapt.exe” finished with non-zero exit value 1

  17. ۲۵, مهر , ۱۳۹۷ در ۹:۴۶ ب.ظ

    سلام دوباره این اررور ها هم توقسمت Event log اضافه شده
    ۸:۳۹:۲۸ PM Gradle build finished with 5 error(s) in 14s 122ms
    ۸:۴۱:۴۵ PM InitializationException: getLayoutLibrary() returned null
    ۸:۴۲:۰۶ PM InitializationException: getLayoutLibrary() returned null
    میتونین کمکم کنین

  18. میترا
    ۲۷, آبان , ۱۳۹۷ در ۱۰:۰۹ ب.ظ

    با سلام و خسته نباشید.
    ضمن تشکر از آموزش خوبتون آیا امکانش هست که اسم روز ها رو کامل نشون داد؟ مثلا به جای ش ، شنبه نشون داده بشه. ممنون میشم راهنمایی بفرمایید

    • محمد حسین جعفری پور
      ۳, آذر , ۱۳۹۷ در ۱۱:۵۷ ق.ظ

      سلام و درود
      فکر نمی کنم همچین قابلیتی توسط توسعه دهنده لحاظ شده باشد چون خیلی طول view بزرگ می شود.

  19. negin
    ۴, آذر , ۱۳۹۷ در ۱۲:۰۸ ق.ظ

    سلام.ببخشید من این کتابخونه رو که اضافه میکنم این ارور رو میده Error:Failed to resolve: recyclerview-v7
    باید چکار کنم؟

  20. ۹, دی , ۱۳۹۷ در ۱:۴۲ ب.ظ

    سلام وقت بخیر
    ببخشید یک سوال داشتم از حضورتون
    من میخوام یک تقویم که بتونه عملیات ثبت شیف کاری رو انجام بده بسازم
    ولی نمیدونم چطوری میتوانم این کار را بکنم
    میشه به من راهنمایی کنید؟
    ممنونم از لطفتون.

    • محمد حسین جعفری پور
      ۱۰, دی , ۱۳۹۷ در ۵:۲۸ ب.ظ

      سلام و درود
      برای این کار لازمه سورس همین کتابخانه رو از github دریافت کنید و روش کار کنید یعنی سفارشی سازیش کنید شاید بتونید با استفاده از همین چیزی که می خواهید رو درست کنید ولی دسترسی کمتری به view ها دارید
      سورس کتابخانه
      https://github.com/Roojin/persian-calendar-view

      موفق و پیروز باشید.

  21. میثم
    ۱۴, بهمن , ۱۳۹۷ در ۱۲:۳۹ ب.ظ

    وقتی اکتیویتی اجرا میشه و setcontentview اجرا میشه برنامه متوقف می شه
    علتش چی می تونه باشه؟

  22. محمد اربابی
    ۱۲, اسفند , ۱۳۹۷ در ۱۰:۲۶ ق.ظ

    با سلام
    آیا متد برای غیرفعال کردن تعدادی روز وجود دارد، منظور بنده این است که برای تعدادی روز خاص قابل کلیک نباشد (clickable آن روز false باشد)

  23. milad
    ۱۹, اسفند , ۱۳۹۷ در ۹:۱۰ ب.ظ

    با سلام و خسته نباشید خدمت دوستان و مدیریت سایت .
    آبا امکان داره آموزش یا نرم افزاری برای اندروید قرار بدین که هنگام عکس گرفتن با دوربین ، تقویم شمسی روی عکس حک بشه . مثل گوشی های سونی اریکسون قدیمی ؟؟؟؟ اگه اینکارو بکنید یه دنیا ممنون میشم .

  24. ایمان
    ۲۸, فروردین , ۱۳۹۸ در ۵:۵۹ ب.ظ

    من کتابخانه رو ندیدم کجا گذاشتید