خانه / توسعه موبایل / برنامه نویسی اندروید / آموزش برنامه نویسی اندروید (۱۲) – ساخت پروژه اپلیکیشن اندروید
آموزش برنامه نویسی اندروید (12) - ساخت پروژه اپلیکیشن اندروید

آموزش برنامه نویسی اندروید (۱۲) – ساخت پروژه اپلیکیشن اندروید

با سلام خدمت دوستان عزیز. با جلسه یازدهم اندروید در خدمتتون هستم. میخواهیم این جلسه به دو تا کار کاربردی دراندروید بپردازیم. اول از همه کاری که جلسه قبل مطرح کردم رو کامل میکنیم. قرار بود در ساخت پروژه اپلیکیشن اندروید اندروید یک تقویم فارسی بذاریم توی صفحه.

موضوع اول: ایجاد تقویم در ساخت پروژه اپلیکیشن اندروید

اضافه کردن تقویم در پروژه

لینکی که خدمتتون دادم این بود را از اینجا(+) می توانید شماهده کنید.

خب این تقویمی که توی این سایت گذاشته باید نسخه sdk شما حداقل ۱۱ باشه. یادتون باشه ما api8 گذاشته بودیم. پس الان باید بیایم و نسخه api پروژمون رو تغییر بدیم. خیلی هم خوب چون اینطوری یاد میگیرید که از کجا اینکار رو انجام بدید.

قدم اول: نصب یه ورژن api بالای ۱۱٫ میتوانید برای اینکار از همان pdf که دادم استفاده کنید

قدم دوم: تغییر ورژن android sdk در پروژتون. برای اینکار از بالا سمت راست intellij ایکون زیر رو انتخاب کنید:

ساخت پروژه اپلیکیشن اندروید-1

حالا در پنجره زیر در این قسمت ورژن sdk رو تغییر بدید:

ساخت پروژه اپلیکیشن اندروید-2

قدم سوم: اضافه کردن تقویم به پروژه

برای اینکار دو راه نوشته شده است. من راه دوم را خواهم رفت. (راه اول را با برنامه اکیلیپس نوشتند)

خب راه دوم رو هم باید با کمی تغییر بدیم.

داخل این لینک(+) بشوید و از سمت راست با زدن Download Zip سورس تقویم را دانلود کنید.

پس از دانلود مراحل زیر رو با دقت انجام بدید:

  1. داخل پوشه src از سورسی که دانلود کردید بشید. یک پوشه به نام ir هست. اون رو کپی کنید. حالا برید توی محلی که پروژه خودتون رو ساختید. داخل پوشه src پروژتون چیزی که کپی کردید رو paste کنید.
  2.  از فایلی که دانلود کردید وارد پوشه Res و سپس layout بشید. sl_persian_date_picker.xml رو کپی کرده و بعد وارد پوشه پروژه خودتون شده و در مسیر مشابه اون رو paste کنید.
    از داخل intellij در پروژه خودتون داخل پوشه res روی پوشه values راست کلیک کنید، سپس new و سپس Values resource file رو بزنید و نام اون رو بذارید attrs . یک فایل xml برای شما ساخته میشه.
  3. داخل اون شده و بین رو تگ resources> این رو قرار بدید:

ساخت پروژه اپلیکیشن اندروید-3

خب حالا یک دور پروژه رو بزنید Run بشه. اگه از کلاس PersianDatePicker از کده زیر ایراد گرفت اون رو پاک کنید:

بیشتر هدف من این بود یاد بگیرید چطور یک سورس رو به پروژتون اضافه کنید. توی اینترنت سورس کدهای زیادی هست. خیلی ها هم داخل همین سایت github قرار داده میشوند.

البته روش دیگه این هست که یک کتابخانه اضافه کنید به پروژه خودتان. در آینده این را هم تست میکنیم با کتابخانه های دیگر.

استفاده از تقویم در ساخت پروژه اپلیکیشن اندروید

برای اینکه از این تقویم استفاده کنید کافی هست برید داخل همان layout مربوط به ثبت نام دوستانتان. مثلا من اسمش رو قرار داده بودم add_person. خب کده زیر رو بزنید:

ساخت پروژه اپلیکیشن اندروید-4

این کد رو در انتهای سایر تگها اضافه کنید یا هرجا میخواهید.

صفتها را که میشناسید. این تقویم خودش به تنهایی یک سری صفتهای جدید دارد. مثلا displayMonthName برای این هست که در ماه ها به جای عدد اسامی ماه ها رو بگوید.

یا selected year، selected month و selected year برای این هست که بصورت دیفالت چه تاریخی انتخاب شود در غیر اینصورت تاریخ روز نمایش داده میشود. همچنین با min Year و Max Year میتونید رنج زمانی رو تعیین کنید.

زمانی که به بحث ذخیره سازی در SQLITE رسیدیم با کدنویسی این تقویم اشنا میشوید.

برای اینکه یک عنوان بگذارم برای تقویم از تگ زیر استفاده کردم در بالای تگ تقویم (layout ما linear است):

ساخت پروژه اپلیکیشن اندروید-5

شکل نهایی تقویم به اینصورت هست:

ساخت پروژه اپلیکیشن اندروید-6

موضوع دوم: کار با اینترنت

همانطور که اول آموزش گفتم در این جلسه قصد دارم یک مبحث مهم رو برای شما شروع کنم. با هدفه اینکه در کنار دکمه های ارسال پیامک و تماس دکمه ارسال ایمیل هم بذاریم.

میتوانید یک پروژه مجزا باز کنید (یا داخل پروژه فعلی یک صفحه و اکتیویتی دیگر تعریف کنید) تا یک سری کد را تست کنیم.

  1. باز کردن یک صفحه اینترنت:

بطور مثال من در یک پروژه که فایل آن را در اختیارتان میگذارم، یک دکمه به نام button ایجاد کردم. میخواهم این دکمه هنگامی که زده شد یک صفحه اینترنتی باز بشود.

در ابتدا میخواهیم متصل بودن دستگاه به اینترنت رو بررسی کنیم:

  • بررسی اتصال به اینترنت

برای انجام هرکار با اینترنت جهت جلوگیری از خطاهای احتمالی ابتدا باید بررسی کنیم ایا دستگاه به اینترنت متصل هست یا نه. پس در اکتیویتی در ابتدا دو کد زیر رو بنویسید.

خب برای فهم کد بالا خیلی ساده بهش نگاه میکنیم. ابتدا Context تعریف کردیم و همانطور که قبلا گفتم این کلاس میشود گفت وضعیت کنونی را به ما برمیگرداند. یک نمونه ازش گرفتم و مقدار اولیه آن را برابر this گذاشتم.

بعد از آن از کلاس ConnectivityManager استفاده کردم. این کلاس مدیریتی از اتصالات دستگاه را به ما میدهد. یک نمونه ازش گرفتم. برای مقدار دهی دقیقا این رو گفتم: “از وضعیت کنونی دستگاه، سرویس Connectivity رو از وضعیت دستگاه گرفته و اون رو بعنوان یک سیستم سرویس به من بده”

متد getSystemService، یک متد از context هست که یک ورودی میگیرد و در نهایت با توجه به ورودی که بهش میدهیم به ما آن سرویس را میدهد. توجه کنید که خروجی این متد از نوع Object هست. پس باید از Cast کردن استفاده کنیم تا بتوانیم مقدارش را در connectMngr ذخیره کنیم:

خب تا الان ما تمام سرویس های Connect را داخل connectMngr داریم. اما ما تنها الان اطلاعاتی از شبکه را لازم داریم. که به این میگوند NetworkInfo. پس کافی هست کد زیر را بنویسید تا از connectMngr اطلاعات شبکه را گرفته و داخل یک شی از NetworkInfo ذخیره کنه:

خب حالا برای بررسی شرط اتصال به اینترنت داخل متد Onclick کد زیر را بنویسید:

اول از همه جهت یاداوری دوستان جهت بررسی یک شرط در جاوا (بیس اندروید) از if استفاده میکنیم.

جهت بررسی یک شرط در جاوا از if استفاده میکنیم و شرط مورد نظر داخل پرانتز قرار داده میشود. سپس بررسی میکنیم اگر شرطی برقرار است کارهای مورد نظر ما داخل {} نوشته میشود.

شرط هایی که بررسی کردیم:

  1. netInfo == null : اگر هیچ شبکه ای موجور نیست.
  2. netInfo.isAvailable() == false: یعنی اگر شبکه فعال نیست
  3. netInfo.isConnected() == false: یعنی اگر شبکه متصل نیست

این نکته را هم بگویم که در شرط ها اگر بین چند شرط “یا” برقرار بود یعنی در نظر داشتیم یکی از شرطها هم حتی اگر برقرار بود عملیات ما انجام شود، بین آنها علامت || میگذاریم.

همچنین اگر مورد نظر ما بود که تمام شرطها حتما برقرار باشند همزمان تا کاری را انجام دهیم، بین آنها && میگذاریم.

در اخر اینکه در بررسی شرطها علامت تساوی (آیا مساوی بودن!؟) بصورت == قرار داده میشود.

خب در این مرحاهه از ساخت پروژه اپلیکیشن اندروید بعد از بررسی شرط ها میخواهیم بگوییم اگر یکی از اینها هم برقرار بود یعنی اینترنت متصل نیست، پس پیامی را به کاربر نشان دادیم.

درغیر اینصورت اینترنت وصل هست پس میشود صفحه اینترنت رو باز کنیم.

حالا کد زیر را اضافه کنید:

زمانی که شرطی را بررسی میکنیم و میخواهیم بگویم اگر if مطرح شده برقرار نبود در غیر اینصورت چکاری انجام بده، از else استفاده میکنیم.

فعلا داخل else نوشتم یک پیام نشان بده که به اینترنت متصل هستید.

تنها چیزی که نباید فراموش بشود اجازه گرفتن از کاربر هست. که میخواهیم از اینترنت اون فرد استفاده کنیم. این permission ها رو در manifest قرار بدید.

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

حالا در این مرحله باید داخل else صفحه مورد نظر را باز کنیم.

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

این نوع خاصی از intent هست. ورودی اول نوعش را مشخص کرده و ورودی دوم یک متد هست به نام Parse. این متد در کلاس Uri قرار دارد. یک ورودی رشته ای (string) گرفته و اون رو تبدیل به یک uri معتبر میکند. در اخر هم Intent خود رو اجرا کردیم.

دوستان امیدوارم این جلسه مطالب مفید بوده باشه.

در جلسه آینده به ادامه بحث اینترنت میپردازیم. به استفاده از webView و یک سری کاربردهاش. همچنین ارسال ایمیل.

توصیه میکنم خودتان یک بررسی بکنید و تلاش بکنید در این دو موضوع در ساخت پروژه اپلیکیشن اندروید اندروید.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *