ارسال مقادیر از یک اکتیویتی به اکتیویتی دیگر
برای ارسال مقادیر از یک اکتیویتی به اکتیویتی دیگر از کلاس 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() استفاده کنید