با یک سری دیگه از سری آموزش های قدم به قدم با اندروید در خدمت شما هستم در این قسمت با برخی از اصول در طراحی برنامه های مونو اندروید آشنا خواهیم شد این اصول عبارتند از
مفهوم Intents در زامارین اندروید

  1. Intents
  2. Activities
  3. Services

در این آموزش مبحث ما پیرامون مفهوم Intents در مونو اندروید خواهد بود. Intents در اندروید ساختار پیامی دارند .Intents میتوانند به به برخی از اجزای اندروید درخواستی را ارسال و از آن دریافت کنند .کار Intents معمولا با Activities  و Services  شروع خواهد شد ما در این آموزش نشان خواهیم داد که Intents چگونه با Activities  و Services کار خواهند کرد. در واقع Intent ها وقوع یک رویداد را به اندروید اعلام میکنند؛ با این کار تمام Activity ها و Service هایی که برای آن رویداد در سیستم ثبت شده‌اند فراخوانی میشوند. تمام Intents های اندروید به دو دسته تقسیم خواهند شد

  1. Explicit Intents مفاهیم آشکار
  2. Implicit Intents مفاهیم ضمنی

Explicit Intents مفاهیم آشکار اندروید

مفاهیم آشکار برای فراخوانی سرویس یا Activity مشخص به کار میرود. در این حالت کاربر نمیتواند برای اجرای رویداد مورد نظر از Activity دلخواه خود استفاده کند مثلا برای فراخوانی یک Activity در برنامه خود. برای اینکه با این مفهموم بیشتر آشنا شوید یک پروؤه در ویژوال استادیو ایجاد نمایید سپس بر روی پروژه خود خود راست کلیک نمایید و گزینه Add New Item را انتاخب نمایید از لیست ظاهر شده یک Activity به نام DetailsActivity ایجاد نمایید
مفهوم Intents در زامارین اندروید
پس از ایجاد 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 را جهت اجرا شدن نیاز دارد.پس از اجرای برنامه خود در مرحله اول با تصویر زیر روبروی خواهید شد
مفهوم Intents در زامارین اندروید
حال بر روی دکمه کلیک نمایید تا نتیجه کدهای نوشته شده برای شما ظاهر شود
مفهوم 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ها هستید به اینجا مراجعه نمایید

25 پست
محمدزاده
سابقه 10 ساله برنامه نویسی مایکروسافت شامل C# , WPF , ASP.Net , Asp.Net Mvc و چند سال اندروید کار کردم تا اینکه زامارین دست به کار شد الان 3 ساله برنامه های اندرویدم رو با ویژوال استادیو مینویسم و لذت میبرم و دوست دارم این لذت رو با دیگران شریک باشم
برچسب ها: , , , , , , , , , , , , , ,
مطالب مرتبط
مطالب نویسنده
دیدگاه کاربران

برای نوشتن دیدگاه میتوانید به حساب کاربری خود وارد شوید ورود ارسال نظر بصورت مهمان
ارسال نظر (مهمان):