با یک سری دیگه از سری آموزش های قدم به قدم با اندروید در خدمت شما هستم در این قسمت با برخی از اصول در طراحی برنامه های مونو اندروید آشنا خواهیم شد این اصول عبارتند از
- Intents
- Activities
- Services
در این آموزش مبحث ما پیرامون مفهوم Intents در مونو اندروید خواهد بود. Intents در اندروید ساختار پیامی دارند .Intents میتوانند به به برخی از اجزای اندروید درخواستی را ارسال و از آن دریافت کنند .کار Intents معمولا با Activities و Services شروع خواهد شد ما در این آموزش نشان خواهیم داد که Intents چگونه با Activities و Services کار خواهند کرد. در واقع Intent ها وقوع یک رویداد را به اندروید اعلام میکنند؛ با این کار تمام Activity ها و Service هایی که برای آن رویداد در سیستم ثبت شدهاند فراخوانی میشوند. تمام Intents های اندروید به دو دسته تقسیم خواهند شد
- Explicit Intents مفاهیم آشکار
- Implicit Intents مفاهیم ضمنی
Explicit Intents مفاهیم آشکار اندروید
مفاهیم آشکار برای فراخوانی سرویس یا Activity مشخص به کار میرود. در این حالت کاربر نمیتواند برای اجرای رویداد مورد نظر از Activity دلخواه خود استفاده کند مثلا برای فراخوانی یک Activity در برنامه خود. برای اینکه با این مفهموم بیشتر آشنا شوید یک پروؤه در ویژوال استادیو ایجاد نمایید سپس بر روی پروژه خود خود راست کلیک نمایید و گزینه Add New Item را انتاخب نمایید از لیست ظاهر شده یک Activity به نام DetailsActivity ایجاد نمایید
پس از ایجاد Activity با کدهای زیر مواجه خواهید شد
using Android.App; using Android.OS; using Android.App; using Android.OS; namespace IntentsSamples { [Activity(Label = "DetailsActivity")] public class DetailsActivity : Activity { protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Details); } } }
جای نگرانی وجود ندارد زیرا در آموزش آینده بطور کامل با Activity ها آشنا خواهید شد
تمامی پروژه های مونو اندروید بصورت پیشفرض با MainActivity ایجاد خواهند شد بر روی این Activity دو بار کلیک نمایید و کدهای زیر را در قسمت رخداد کلیک دکمه بنویسید
using System; using Android.App; using Android.Content; using Android.OS; using Android.Widget; namespace IntentsSamples { [Activity(Label = "IntentsSamples", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity { protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // Get our button from the layout resource, // and attach an event to it Button button = FindViewById<Button> (Resource.Id.MyButton); button.Click += button_Click; } private void button_Click(object sender, EventArgs e) { var detailsIntent = new Intent(this, typeof (DetailsActivity)); StartActivity(detailsIntent); } } }
نکته ای که در این کد مشاهده می کنید این است که ما در رخداد کلیک دکمه یعنی زمانی که بر روی این دکمه کلیک شد نمونه ای از Intents ساخته شده و در سازنده یک نمونه از کلاس فعلی و نمونه ای از کلاسی مقصد را در سازنده Intents به آن میدهیم .نکته این که تمامی Activity ها کلاسی هستند که از کلاس Activity ارث بری کرده اند . و اما زمانی که شما نیاز به دارید تا یک Activity را اجرا نمایید باید از تابع StartActivity اندروید بهره ببرید که در سازنده خود Intents را جهت اجرا شدن نیاز دارد.پس از اجرای برنامه خود در مرحله اول با تصویر زیر روبروی خواهید شد
حال بر روی دکمه کلیک نمایید تا نتیجه کدهای نوشته شده برای شما ظاهر شود
Implicit Intents مفاهیم ضمنی اندروید
وقتی قصد دارید اندروید برای شما کاری را انجام دهد و برایتان مهم نیست که چه اکتیویتی یا سرویسی آن کار را انجام میدهد باید از Intent ضمنی استفاده کنید. در این صورت اندروید تمام اجزائی که قابلیت انجام آن کار را دارند را برای کاربر لیست میکند و کاربر جزء دلخواه خود را انتخاب میکند. در زیر چند نمونه طریقه استفاده از مفاهیم ضمنی اندروید را مشاهده می کنید
استفاده ازنقشه گوشی
private void openmap_Click(object sender, EventArgs e) { var uri = Uri.Parse("geo:37.0634800,-122.0013280"); var intent = new Intent(Intent.ActionView, uri); StartActivity(intent); }
استفاده از صفحه تماس
private void opentell_Click(object sender, EventArgs e) { var uri = Uri.Parse("tel:8314620457"); var intent = new Intent(Intent.ActionDial, uri); StartActivity(intent); }
استفاده از مرورگر وب
void opensite_Click(object sender, EventArgs e) { var uri = Uri.Parse("http://ronus.ir"); var intent = new Intent(Intent.ActionView, uri); StartActivity(intent); }
به پایان یکی دیگه از سری آموزش های قدم به قدم با مونو رسیدیم همچنان منتظر انتقادات و پیشنهادات شما هستیم اگر مایل به بررسی اطلاعات بیشتر در مورد Intentها هستید به اینجا مراجعه نمایید
- ۱۹ آبان ۱۳۹۴ ۲۰:۰۸
- 0
- محمدزاده
- قدم به قدم با مونو
- 2,207 بازدید