ارسال داده از یک Intent به Intent دوم در Xamarin.Android

چهارشنبه 11 آذر 1394

در این مقاله می خواهیم در مورد Intent ها صحبت نماییم، کاربرد Intent و صدا زدن و رفتن از یک Intent به Intent دوم در xamarin.android است.

ارسال داده از یک Intent به Intent دوم در Xamarin.Android

ابتدا داخل فایل Xaml ابزار های زیر را قرار دهید به صورت زیر:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:text="نام خود را وارد نمایید"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/textView1" />
    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txt_Name" />
    <Button
        android:text="ثبت"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btn_Submit" />
</LinearLayout>

حالا برای رفتن به Layout دوم می توانید از یک Textview استفاده نمایید که با زدن نام خود و دکمه نام کاربر به intent دوم می رود و با یک پیغام textview نمایش می دهد.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:minWidth="25px"
    android:minHeight="25px">
    <TextView
        android:text="سلام"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txt_Result" />
</LinearLayout>

حالا باید سراغ کلاس Activity برویم در این کلاس ابزار های استفاده شده را تعریف نمایید و برای هر دکمه یک رویداد تعریف نمایید که اگر داخل Textbox پر بود متن را بگیرد و به Intent دوم برود و آن را نمایش دهد و اگر پر نبود یک پیغام Toast نمایش دهد.

کلاس Activity برای گرفتن متن به صورت زیر است:

   public class Activity1 : Activity
    {
        EditText txt_Name;
        Button btn_Submit;
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);
            //Get txt_Name and btn_Submit Button CheckBox control from the Main.xaml Layout.  
            txt_Name = FindViewById<EditText>(Resource.Id.txt_Name);
            btn_Submit = FindViewById<Button>(Resource.Id.btn_Submit);
            //btn_Submit click event
            btn_Submit.Click += btn_Submit_Click;
        }

        void btn_Submit_Click(object sender, EventArgs e)
        {
            //if EditText in not Empty
            if(txt_Name.Text!="")
            {
                //passing the Activity2 in Intent
                Intent i = new Intent(this,typeof(Activity2));
                //Add PutExtra method data to intent.
                i.PutExtra("Name",txt_Name.Text.ToString());
                //StartActivity
                StartActivity(i);
            }
            else
            {
                Toast.MakeText(this,"لطفا نام ار وارد نمایید",ToastLength.Short).Show();
            }
        }
    }

حالا برای activity دوم و نمایش آن داخل intent دوم باید کد زیر را قرار دهید که Textview را معرفی می نماید و نام را دریافت می کند و داخل Textview به همراه یک کلمه مثل سلام نمایش می دهد

کد کلاس Activity2:

    public class Activity2 : Activity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            // Set our view from the "Result" layout resource
            SetContentView(Resource.Layout.Result);
            //Get txt_Result TextView control from the Main.xaml Layout.  
            TextView txt_Result = FindViewById<TextView>(Resource.Id.txt_Result);
            //Retrieve the data using Intent.GetStringExtra method
            string name = Intent.GetStringExtra("Name");
            txt_Result.Text ="سلام, "+name;
        }
    }

خروجی به صورت زیر خواهد بود:

بعد از وارد کردن اسم و رفتن به Intent دوم:

دوره های آموزشی زامارین 

دوره برنامه نویسی اندروید با سی شارپ ( Xamarin )

آموزش متریال دیزاین در زامارین

آموزش Xamarin Forms

دوره Xamarin Form پیشرفته

فایل های ضمیمه

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

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید