آموزش اندروید فصل چهارم قسمت پنجم – Create Content Provider

آموزش برنامه نویسی اندروید فصل چهارم

در قسمت پنجم آموزش اندروید در ادامه آموزش قبل مبحث Content Provider ها یا تامین کننده محتوی , تمامی مراحل ایجاد یک ContentProviderr را از کلاس دیتابیس و کوری های مورد نیاز تا کلاس ContentProvider را به صورت کامل و با جزییات شرح خواهیم داد پس با ما همراه باشید..

آموزش اندروید فصل چهارم قسمت پنجم – Create Content Provider

ایجاد تامین کننده محتوی

آموزش های مربوط بهContent Provider را در آموزش قبل به صورت کامل ارئه شد. در این بخش قصد داریم یک تامین کننده محتوی را ایجاد کنیم برای این کار نیاز به دو کلاس داریم یکی کلاسی که از ContentProvider ارث بری میکند و دیگری کلاسی که حاوی دستورات SQL میباشد و از SQLiteOpenHelper چنین کدنویسی میکنیم که ما برای درک بیشتر این مبحث مرحله به مرحله کدنویسی را پیش میبریم

۱-ابتدا کلاس SQL خود را با نام دلخواه ایجاد میکنیم

دو متد onCreate و onUpgrade و سازنده Database مربوط به کلاس SQLiteOpenHelper میباشد و حتما باید ایجاد شوند که میتوانید اشارگر را روی نام کلاس نگه داشته و از کادر باز شده گزینه Add unimplemented را انتخاب کنیم تا این متدها و سازنده ایجاد شوند سپس دستورات مورد نیاز را در آن قرار دهیم. متغیرهای تعریف شده در ابتدا کلاس نیز همانگونه که از نامشان مشخص است نام دیتابیس و جدول و همچنین کوری مربوط به ایجاد جدول و بارگزاری درصورت وجود داشتن را مشخص میکنند در متد های onCreate و onUpgrade نیز کوری های تعیین شده را قرار داده ایم.

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

برای توضیح عبارت فوق میتوان گفت برای ایجاد یک رکورد از متد insert استفاده میکنیم که شامل سه پارامتر است : نام جدول , مقدار اختیاری nullColumnHack  و مقادیری که باید در رکورد قرار گیرند و در انتها نیز شرطی برای اطمینان حاصل کردن از ایجاد صحیح رکورد در نظر گرفته شده.

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

حال باید کلاس Content Provider را ایجاد کنیم

نام provider باید یک نام یکتا باشد که میتوان از نام پکیج برنامه استفاده کرد که در ادامه در URI از آن استفاده خواهیم کرد و Content_URI در واقع آدرس این ContentProvider است و برای آدرس دهی از آن استفاده میشود که شامل چهار بخش است

  • The scheme : که همیشه باید مقدار  content:// داشته باشد.
  • AUTHORITY : آدرس ContentProvider را تکمیل میکند بدین صورت که از یک نام واحد مثل نام پکیج به علاوه نام provider استفاده میشود.
  • : Path در این بخش نام جدول را وارد میکنیم که یک مقدار اختیاری است.
  • ID : این بخش نیز اختیاری یا Optional  است که مشخص کننده یک سطر خاص و اطلاعات خاص است که با یک شرط و مقدار مشخص میتوان مشخص کرد.

متغیر uriMacher نیز دو نوع آدرس را مشخص میکند یکی به صروت ساده نوشته شده که اشاره به تمامی اطلاعات دارد و دیگری تنها اشاره به یک سطر مشخص که با id  مشخص میشود دارد. و در انتها نیز یک شی از نوع کلاس دیتابیس برای فراخوانی توبع درونش ایجاد کرده ایم.

کلاس ContentProvider نیز مانند کلاس SQLiteOpenHelper به دلیل Abstract بودن شامل متدهایی هستند که حتماباید ایجاد شود که به دو صورت میتوانید این متد هارا ایجاد کنید یکی به صورت دستی و دیگری به روشی که درابتدا آموزش گفته شد. درادامه یکی یکی این توابع را بررسی خواهیم کرد

        متد getType نوع MIME اطلاعات URI داده شده را برمیگرداند شکل کلی این uri بدین صورت است vnd.<uri pattern>./vnd.<name>.<type>   که بدین شرح است

  • <uri pattern> : این عبارت برای یک سطر بدین صورت خواهد بود cursor.item و برای چندین سطر بصورت android.cursor.dir
  • <name> : باید یک اسم عمومی مانند نام پکیج باشد.
  • <type> : باید منحصر بفردبه uri مربوط باشد.

متد onCreate هنگامی که تامین کننده محتوی شروع بکار میکند فراخوانی میشود که همانگونه که مشاهده میکنید از متغیر db برای فراخوانی کلاس دیتابیس استفاده شده و context برنامه را نیز به سازنده کلاس ارسال کرده.

متد query یک درخواست از سمت کاربر دریافت میکند و آن را به شکل شی cursor برمیگرداند.

متد insert یک رکورد جدید در contentprovider ایجاد میکند.

دو متد update , delete نیز برای ویرایش و حذف از کلاس دیتابیس استفاده میکنند.

مدرس : خانم مهندس داودی نژاد

آموزش اندروید فصل چهارم قسمت چهارم

آموزش اندروید فصل پنجم قسمت اول

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

مطالب مرتبط

نظر بدهید

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