دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱
  • آبان

جلسه ۰۹ : Content Providers در اندروید

  • دسته‌بندی‌ها :
جلسه ۰۹ : Content Providers در اندروید
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش برنامه نویسی اندروید را دنبال می کنند. Content Providers یا ارائه دهنده محتوا در اندروید ، جزئی است که داده ها را از یک برنامه به سایر برنامه ها بر اساس درخواست عرضه می کند. چنین درخواست هایی توسط متد های ContentResolver انجام می شود. یک Content Providers می تواند از داده های مختلفی برای ذخیره داده های خود استفاده کند و داده ها را می توان در پایگاه داده، فایل ها یا حتی بیش از یک شبکه ذخیره کرد. جهت آشنایی بیشتر با Content Providers در اندروید در ادامه ی مباحث این آموزش با ما همراه باشید.

      آشنایی با Content Providers در اندروید

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

      آشنایی با Content Providers در اندروید

      آشنایی با Content Providers در اندروید

      نکته:

      گاهی لازم است که داده ها را در میان برنامه ها به اشتراک بگذاریم. این جایی است که Content Providers بسیار مفید هستند.

      Content Providers به شما اجازه می دهد محتوا را در یک مکان متمرکز کنید.

      شما می توانید با برنامه های مختلفی به آن دسترسی داشته باشید.

      ارائه دهنده محتوا بسیار شبیه یک پایگاه داده است چراکه در آن شما می توانید داده را درخواست کرده و محتوای آن را ویرایش کنید.

      همچنین اضافه کردن یا حذف محتویات با استفاده از متد های () inserter ()، update ()، delete () و () query امکان پذیر است.

      در بیشتر موارد این اطلاعات در پایگاه داده SQlite ذخیره می شود.

      Content Providers به عنوان یک کلاس زیر کلاس ContentProvider اجرا می شود.

      ارائه دهنده محتوا باید یک مجموعه استاندارد از API ها را اجرا کند که سایر برنامه ها را قادر به انجام معاملات می کند.

      ساختار تعریف:

      مثال : 

      محتوای URI

      Content Providers برای پرس و جو، رشته پرس و جو را به شکل یک URI مشخص می کند که دارای فرمت زیر است:

      مثال : 

      در جدول زیر جزئیات بخش های مختلف URI است :

      ردیفبخش ها و توضیحات
      ۱prefix

      این بخش محتوای تنظیم شده است://

      ۲authority

      این بخش نام content provider را مشخص می کند.

      به عنوان مثال می تواند یک نام کاربری مانند com.pvlearn.statusprovider باشد.

       

      ۳data_type

      نوع داده هایی را مشخص می کند که یک content provider خاص ارائه می دهد.

       

      ۴id

      این یک رکورد خاص از  داده های ذخیره شده را مشخص می کند.

      ایجاد content provider

      این قسمت شامل مراحل ساده ی ایجاد content provider خود است:

      • اول از هر چیز باد کلاس Content Provider که کلاس  ContentProviderbaseclass را گسترش می دهد را ایجاد کنید.
      • سپس باید آدرس URI ارائه دهنده محتوای خود را که برای دسترسی به محتوا استفاده می شود،را تعریف کنید.
      • بعدا شما باید پایگاه داده خود را برای نگهداری محتوا ایجاد کنید. معمولا  اندروید از پایگاه داده SQLite استفاده می کند.
      • سپس باید Query Provider Content را برای اجرای عملیت بانک اطلاعاتی اجرا کنید.
      • در نهایت ارائه دهنده محتوا ی خود را در فایل activity خود با استفاده از برچسب <provider> ثبت کنید.

      در اینجا لیست متدهایی است که شما باید در کلاس ارائه دهنده محتوا آنها را لحاظ کنید تا Content Provider کار کند:

      کلاس های ارائه دهنده ی محتوا

      آشنایی با Content Providers در اندروید – کلاس های ارائه دهنده ی محتوا

      • ()onCreate : زمانیکه ارائه دهنده شروع شود این متد فراخوانی می شود.
      • ()query : این متد یک درخواست از یک مشتری دریافت می کند و نتیجه را به عنوان شیء Cursor بازمی گرداند.
      • ()insert : این متد یک رکورد جدید را در ارائه دهنده محتوا قرار می دهد.
      • ()delete : این متد یک رکورد موجود از ارائه دهنده محتوا را حذف می کند.
      • ()update : این متد یک رکورد موجود را از ارائه دهنده محتوا را به روز می کند.
      • ()getType : این متد نوع MIME داده ها را در URI داده شده را ارائه می دهد.

      مثال :

      این یک مثال ساده از چگونگی ایجاد ContentProvider در مثال همیشگی ما یعنی مثال Hello World است:

      مراحلتوضیحات
      ۱مراحل ایجاد برنامه در اندروید استدیو را طبق بخش های قبلی دنبال کرده و نام پکیج را com.pvlearn.pvlearn.myapplication قرار بدهید.
      ۲به محتوای فایل MainActivity.java دو متد () onClickAddName  و () onClickRetrieveStudents را اضافه کنید.
      ۳فایلی به نام StudentsProvider.java در پکیج com.pvlearn.pvlearn.myapplication برای تعریف ارائه دهنده ی محتوا و متدهای آن تعریف کنید.
      ۴ارائه دهنده محتوا خود را در فایل AndroidManifest.xml خود را با استفاده از برچسب <provider … /> ثبت کنید
      ۵به محتوای فایل res / layout / activity_main.xml یک GUI به منظور افزودن داده ها اضافه کنید.
      ۶نیازی به تغییر محتوای فایل string.xml نیست.
      ۷برنامه را اجرا کنید تا شبیه ساز آندروید را راه اندازی کنید و نتیجه تغییرات انجام شده در برنامه را تأیید کنید.

      کد برنامه ی زیر نشان می دهد که ما به محتوای فایل src / com.pvlearn.MyApplication / MainActivity.java  دو متد() onClickAddName  و () onClickRetrieveStudents را برای مدیریت تعامل کاربر با برنامه اضافه کرده ایم:

      مثال : 

      سپس فایل جدید StudentsProvider.java را در زیر پکیج  com.pvlearn.MyApplication بصورت زیر اضافه می کنیم:

      مثال : 

      در مرحله ی بعدی به فایل AndroidManifest.xml تگ <provider…/> را برای تعریف ارائه دهنده ی محتوا اضافه می کنیم:

      مثال : 

      دستکاری محتوای فایل res/layout/activity_main.xml نیز به صورت زیر خواهد بود:

      مثال : 

      محتوای فایل res/values/strings.xml نیز به صورت زیر است:

      مثال : 

      اجرای برنامه

      برای اجرای برنامه ی اندرویدی خود یکی از فایل های activity در برنامه ی خود کلیک کنید.

      سپس روی نماد  (Run) از نوار ابزار برای شروع اجرای برنامه کلیک کنید.

      اگر همه چیز بخوبی پیش برود شبیه ساز اندروید پنجره ی زیر را نمایش خواهد داد:

      ارائه دهنده ی محتوا در اندروید

      ارائه دهنده ی محتوا در اندروید – نتیجه

      حالا Name و Grade را وارد کنید و در نهایت بر روی دکمه Add Name کلیک کنید.

      این رکورد student را در پایگاه داده اضافه می کند و با یک پیام در پایین نمایش URI ContentProvider با تعداد رکورد اضافه شده در پایگاه داده اشاره می کند.

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

      ارائه دهنده ی محتوا - نتیجه ی درج داده

      ارائه دهنده ی محتوا – نتیجه ی درج داده

      پس از درج داده های مرود نظر با کلیک روی Retrieve Students ارائه دهنده ی محتوا تمام داده های درج شده را نمایش می دهد.

      همچنین می توانید فعالیت های به روز رسانی و حذف عملیات را با ارائه توابع فراخوانی آن در فایل MainActivity.java بنویسید.

      و در نهایت دکمه ی بروزرسانی و حذف عملیات را نیز در رابط کاربری اضافه کنید.

      به این ترتیب می توانید با استفاده از قابلیت های ارائه دهنده محتوا در اندروید برنامه های کاربردی با پایگاه داده ی مناسب ایجاد کنید.

      کلام آخر

      در مباحث این بخش یاد گرفتیم که چه طور با استفاده از Content Providers در اندروید به یک برنامه قابلیت ذخیره و بازیابی داده ها را اضافه کنیم. آشنایی با چگونگی استفاده از ارائه دهنده محتوا در اندروید ، یکی از بخش های اصلی ایجاد برنامه های کاربردی است

      QR:  جلسه ۰۹ : Content Providers در اندروید
      به اشتراک بگذارید