در این قسمت  می خواهیم یاد بگیریم که چطوری علاوه بر ساختن Intent داده های دلخواهمون رو درون اون قرار بدیم و سپس اون رو به اکتیوتی مقصد ارسال کنیم .پیش نیاز این آموزش (آشنایی با Intent) می باشد .

فرستادن اطلاعات اضافی به اکتیویتی دیگر (purExtera)
برای فرستادن اطلاعات اضافی به اکتیوتی دیگر یک Intent می سازیم و اطلاعت دلخواهمون رو با فراخوانی متد putExtera روی Intent ساخته شده درون اون Intent قرار می دهیم.در نهایت در اکتیویتی مقصد Intent را دریافت کرده و اطلاعات اضافی را واکشی میکنیم.
در زیر مراحل انجام کار را ذکر می کنیم :
همان طور که قبلا ذکر کردیم برای ساختن یک Intent مشابه زیر عمل میکنیم :

حال برای قرار دادن اطلاعات اضافی در Intent ساخته شده(در اینجا payam ) از دستور putExtra به صورت زیر استفاده میکنیم :

message : کلید دلخواهی است که به وسیله آن به داده مان اشاره می کنیم.
hello : متن دلخواهی است که می خواهیم آن را به اکتیوتی دیگر ارسال کنیم.

نکته : انواع داده ای مختلف ( Boolean و integet و … ) را می توانیم به این طریق از یک اکتیوتی به اکتیویتی دیگر ارسال کنیم.همان طور که مشاهده می کنید ساختار تعریف این داده ها  به صورت کلید/مقدار می باشد.
مثال :

در خط بالا مقدار عددی ۲۱ را با نام (کلید )Age  درون Intent قرار داده ایم.

تمرین:یک Intent ایجاد کرده و داده های اضافی Iran و ۹۸ درون آن قرار داده و در نهایت آن را به اکتیوتی دوم (SecondActivity ارسال کنید)

توضیح خطوط بالا :
خط ۱ : در این خط یک Intent ایجاد کرده که مقصد آن اکتیوتی SecondActivity است.
خط ۲ : در این خط بوسیله دستور PutExtera داده اضافی Iran را با کلیدی با نام Country درون Intent قرار داده ایم.
خط۳ : در این خط بوسیله دستور PutExtera داده اضافی ۹۸ را با کلیدی با نام  Code درون Intent قرار داده ایم.
خط ۴ : در این خط Intent ایجاد شده را جهت اجرای اکتیویتی مقصد به سیستم عامل اندروید تحویل داده ایم.(اطلاعات اضافی نیز به همراه این Intent به سیستم عامل اندروید تحویل داده شده و در نهایت توسط سیستم عامل اندروید به اکتویتی مقصد(SecondActivity) فرستاده  می شوند)


دریافت اطلاعات اضافی قرار داده شده در Intent

برای دریافت اطلاعات قرار داده شده در اکتیوتی مقصد ،ابتدا از دستور getIntent استفاده می کنیم.این دستور  Intent ای که باعث اجرا شدن اکتیویتی ما شده است را بر می گرداند که ما بوسیله فراخوانی متدهای مربوطه روی آن می توانیم به اطلاعات اضافی موجود در Intent دسترسی پیدا کنیم.
به خط  زیردقت کنید :

توسط دستور بالا Intent ای که باعث اجرا شدن اکتیویتی ما شده است را در myIntent قرار داده ایم.از این به بعد تمام اطلاعات اضافی مان را از طریق فراخوانی مندهای مربوطه روی myIntent دریافت می کنیم.
برای دریافت اطلاعات اضافی موجود در Intent دریافت شده بسته به نوع آن اطلاعات (string و int و  …) از متد مربوطه استفاده میکنیم.
اگر نوعی که در Intent قرار داده شده است از نوع String(رشته ای) باشد ، با استفاده از متد getStringExtera آنرا واکشی میکنیم.برای مثال :

از آنجا که کلید Country دارای مقدار Iran می باشد دستور بالا باعث برگرداندن مقدار Iran lمیشود .به وسیله قرار دادن str در سمت چپ انتساب مقدار بازگردان شده را در این متغیر ذخیره کرده ایم.
اگر نوعی که در Intent قرار داده شده است از نوع Int (یعنی مقدار عددی صحیح ) باشد ، با استفاده از متد getIntExtera  آنرا واکشی میکنیم.

از آنجا که مقدار ۹۸ را با کلید Code درون Intent قرار داده بودیم با اجرای دستور بالا مقدار ۹۸ موجود در myIntent برگشت داده شده و در نهایت درون number ذخیره می شود .
در زیر انواع متدهایی که برای فراخوانی انواع مختلف قرار داده شده اند را مشاهده می کنید :

نوع داده متد متناظر با نوع داده
int getIntExtera
String  getStringExtera
float  getFloatExtera
Double  getDoubleExtera
boolean  getBooleanExtera
bundle getBundleExtera
و…  و…

همان طور که مشاهده میکنید ساختار فراخوانی این متدها به صورت کلی با توجه به نوع داده ای که میخواهیم از درون Intent واکشی کنیم به صورت (نام کلید)get*Extera می باشد که به جای * نوع داده مورد نظر را می نویسیم.

امیدوارم که این مبحث پرکاربد به کارتون بیاد.
در صورتی که هر پونه سوال یا پیشنهادی داشتید ، میتونید از طریق دیدگاه ها با ما در میان بگذارید
موفق باشید