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

منتشرشده توسط حامد قنبری در تاریخ

برای ارسال مقادیر از یک اکتیویتی به اکتیویتی دیگر از کلاس Intent  و بطور مختص از متد putExtra استفاده می کنیم. که سینتکس کلی آن بصورت زیر می باشد:

 

Intent  myintent = new Intent(getApplicationContext(), newActivity.class);
String values = "data";
myintent .putExtra("keyword", values);
startActivity(intent);

در کد بالا  آبجکتی از کلاس Intent  ساخته ایم که بوسیله New  آن را فراخوانی کرده و در متغیری به نام myintent ذخیره کرده ایم. getApplicationcontext مورد استفاده در خط اول  نیز برای دسترسی به context  مربوط به Application  در اکتیویتی یا کلاس های دیگر بکار می رود.. newactivity.class  نیز همان اکتیویتی یا کلاسی است که قصد داریم اطلاعات را به آن ارسال کنیم. در خط دوم valuse  متغیری اختیاری است که نوع آن را String  قرار داده  و آن را مساوی با همان مقدار و ارزشی (که نوع آن حتماً از نوع String است)  قرار دادیم که قصد داریم آنها را به اکتیویتی دیگر ارسال کنیم. این مقدار و ارزش برحسب نوع داده ای خود ، می باید در متغیری هم نوع خود ذخیره شود.  در خط سوم با استفاده از متد putExtra ، مقدار یا ارزش مقادیر مورد نظر را با کلیدواژه معینی پیوند داده ایم تا از این طریق در اکتیویتی دیگر امکان دسترسی به آن مقادیر  را از طریق همان کلید واژه داشته باشیم.

برای دریافت مقادیر در اکتیویتی دیگر از سینکس زیر استفاده می کنیم :

 Bundle extras = getIntent().getExtras();
 String variable = extras.getString("keyword");

در اکتیویتی دیگر به منظور دسترسی به اطلاعات ارسال شده از کلاسی بنام Bundle که عموماً برای پاس دادن اطلاعات بین اکتیویتی های مختلف بکار می رود استفاده می کنیم که می تواند همه انواع متغیرها را در خود ذخیره کند. getIntent از متدهای متداول کلاس Intent می باشد که امکان دسترسی به intent ها را در اکتیویتی مختلف فراهم می سازد و getExtra اشاره به putExtra اکتیویتی مبدا دارد که به منظور دسترسی به آن extra  بکار می رود. خط دوم نیز با استفاده  کلید واژه تداعی شده با extra، نوع string ارزش مقادیر را فراخوانی کرده و در متغیری بنام  variable  ذخیره می کند.

برای دریافت انواع مختلف مقادیر داده ای از متد مناسب آن نوع داده استفاده می شود . برای مثال اگر داده ها از نوع integer  باشد متد فراخوان آن در اکتیویتی دریافتی بصورت زیر خواهد بود :

int variable = extras.getInt(“keyword”);

برای دریافت انواع مختلف مقادیر داده ای بصورت آرایه ای از متد مناسب آن نوع داده استفاده می شود . برای مثال اگر آرایه ها از نوع String  باشد متد فراخوان آن در اکتیویتی دریافتی بصورت زیر خواهد بود:

String variable = extras.getStringArray(“keyword”);

اگر آرایه از نوع integer  باشد از متد زیر استفاده خواهد شد:

int variable = extras.getIntArray(“keyword”);


2 دیدگاه

محمد · می 21, 2018 در 10:30 ق.ظ

میخواهم دو مقدار از دو اکتیویتی بگیرم و در اکتیویتی سوم به نمایش بدم.. با intent این امکان وجود دارد؟ اگر وجود ندارد از چی استفاده کنم؟

    حامد قنبری · آگوست 24, 2018 در 1:07 ب.ظ

    از startActivityForResult() استفاده کنید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

-- بارگیری کد امنیتی --