ارسال داده از یک Intent به Intent دوم در Xamarin.Android
چهارشنبه 11 آذر 1394در این مقاله می خواهیم در مورد Intent ها صحبت نماییم، کاربرد Intent و صدا زدن و رفتن از یک 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 پیشرفته
- Xamarin
- 2k بازدید
- 5 تشکر