در این جلسه با مباحث تکمیلی کلاس Intent و انتقال داده ها بین اکتیویتی ها آشنا می شوید. مطالبی که در این جلسه یاد میگیرید عبارت اند از:
از intent برای ارتباط بین کامپوننت های مختلف یک برنامه یا چند برنامه استفاده میشود. در این قسمت به ساده ترین و کاربردی ترین کاربرد intent یعنی انتقال بین اکتیویتی های برنامه داخلی و انتقال اطلاعات بین اکتیویتی ها پرداخته می شود.
Intent intent = new Intent(آدرس اکتیویتی جاری, آدرس اکتیویتی مقصد);
startActivity(intent);
برای انتقال بین دو اکتیویتی باید یک آبجکت از کلاس intent ساخت و در قسمت تابع سازنده(Constructor) باید در پارامتر اول، آدرس اکتیویتی جاری و در پارامتر دوم، آدرس اکتیویتی مقصد را وارد کنید. (مانند مثال بالا)
startActivity(intent);
در قسمت قبل یک آبجکت از کلاس intent ساختیم اما برای اجرا کردن intent(رفتن به اکتیویتی مقصد) نیاز به تابع StartActivity() داریم ورودی این تابع یک intent است. تا این قسمت یاد گرفتید که چطور بین اکتیوتی ها جابه جا شوید. اما شاید نیاز داشته باشید که موقع جابجایی بین اکتیوتی ها یک سری اطلاعات هم ارسال کنید. پس در ادامه همراه باشید.
intent.putExtra(کلید, مقدار);
از متد putExtra() میتوانید برای ارسال اطلاعات به همراه intent استفاده کنید. این تابع برای ارسال داده نیاز به دو پارامتر ورودی دارد:
پارامتر اول نام(name): از پارامتر نام برای دریافت اطلاعات در اکتیوتی مقصد استفاده می شود.
نکته: از متد putExtra() باید قبل از متد startActivity() استفاده کنید.
با استفاده از متد putExtra() میتوانید انواع مختلقی از داده را به همراه intent ارسال کنید.
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("int",2);
intent.putExtra("string","darsman");
intent.putExtra("float",19.99);
intent.putExtra("boolean",true);
intent.putExtra("char",'D');
startActivity(intent);
آموزش مبحث کلاس Bundle
آموزش دریافت اطلاعات ارسال شده به کمک کلاس Bundle
Bundle bundle=getIntent().getExtras();
String name=bundle.getString(کلید مقدار); مقدار رشته ای //
int age=bundle.getInt(کلید مقدار); مقدار عددی //
double avg=bundle.getDouble(کلید مقدار); مقدار اعشاری //
boolean sex=bundle.getBoolean(کلید مقدار); مقدار منطقی //
همه اطلاعات ارسال شده از اکتیویتی مبدا را میتوان با متد getIntent().getExtras()درون شئ bundle ریخت و سپس با استفاده از متد get() میتوانید داده ها را بر حسب نام(name) از Bundle واکشی کنید. می توانید هر نوع داده ای که با intent ارسال کردید را با bundle دریافت کنید.
Bundle bundle=getIntent().getExtras();
String name=bundle.getString(نام مقدار); مقدار رشته ای //
int age=bundle.getInt(نام مقدار); مقدار عددی //
double avg=bundle.getDouble(نام مقدار); مقدار اعشاری //
boolean sex=bundle.getBoolean(نام مقدار); مقدار منطقی //
برای یادگیری این مبحث مثال ها و نکته های متعددی را در فایل ویدئویی آورده ایم که با دانلود این درس و مشاهده ویدئو ها به طور کامل به این مبحث مسلط خواهید شد.
دوست درسمنی عزیز، امیدواریم این آموزش مورد توجه شما قرار گرفته باشد و بتواند شما را در راه رسیدن به اهدافتان کمک کند، سوال های خود را در انجمن برنامه نویسان درسمن بپرسید و انتقادات و پیشنهادات خود را در بخش نظرات برای ما ارسال کنید.