ارسال یک مقدار تنها (رشته یا عدد یا ...) از یک Activity به Activity دیگر، در برنامه نویسی اندروید
شنبه 17 مرداد 1394 6:05 PM
زمانی که کاربر، از یک Activity به یک Activity دیگر وارد می شود، ممکن است که بخواهیم یک سری اطلاعات را از Activity قبلی، به Activity جدید وارد کنیم (مثلا مقادیر انتخاب شده توسط کاربر). در این مبحث، نحوه ارسال یک مقدار از یک Activity به Activity دیگر را شرح می دهیم
برای ارسال مقدار از Activity فعلی، روش putExtra به کار می رود. بهتر است ابتدا شکل کلی آن را بیان کنیم و بعد به صورت جداگانه، شیوه استفاده از آن برای انواع متغیرها (رشته، عدد و ...) را شرح بدهیم. شیوه کلی استفاده از روش putExtra ، به صورت زیر می باشد :
که در آن، intent ، یک شیء (object) از نوع Intent می باشد (یک شیء که از کلاس Intent ساخته شده)(که از آن برای رفتن به Activity بعدی استفاده می کنیم). key باید به صورت یک رشته باشد که نامی منحصربفرد (انتخاب به دلخواه) برای دریافت مقدار در Activity بعدی می باشد (زیرا ممکن است چندین مقدار را ارسال کنیم و بنابراین باید هر کدام، یک نام منحصربفرد (key) داشته باشند تا بتوانیم آنها را به صورت جداگانه دریافت کنیم). value نیز همان مقداری است که می خواهیم به Activity بعدی ارسال شود.
درون Activity اول، کدهای زیر را می نویسیم :
دقت کنید که NewActivity ، نام Activity جدیدی است که وارد آن خواهیم شد و اطلاعات به آن ارسال می گردد.
سپس درون Activity دوم، باید کدهای زیر را بنویسیم :
البته شرط if را می توان برداشت. در رشته (String) با نام myVariable_2 ، مقدار مورد نظرمان ذخیره شده است.
اگر مقدار مورد نظر، یک عدد بوده است (یعنی یک عدد را در رشته ذکر کرده ایم، نه اینکه از جنس int باشد، برای int ، در ادامه توضیحاتی داده شده است)، می توانید از کد زیر، برای تبدیل رشته (string) به عدد، استفاده کنید :
قبل از دریافت مقدار، می توانیم چک کنیم که آیا اصلا مقداری با آن نام ارسال شده است یا خیر (با دستور if) :
درون Activity اول، کدهای زیر را می نویسیم :
دقت کنید که NewActivity ، نام Activity جدیدی است که وارد آن خواهیم شد و اطلاعات به آن ارسال می گردد.
سپس درون Activity دوم، باید کدهای زیر را بنویسیم :
البته شرط if را می توان برداشت. در متغیر با نام myVariable_2 (که از نوع int می باشد)، مقدار مورد نظرمان ذخیره شده است.
همان طور که مشاهده کردید، در Activity دوم، برای دریافت رشته (String)، از روش getString و برای دریافت عدد (int)، از روش getInt استفاده شد. بنابراین برای هر نوع متغیر، باید تنها روش (method) مربوط به آن را بدانیم. برای پیدا کردن این روش، در برنامه eclipse ، نشانگر موس را بعد از عبارت extras.get برده (کلیک می کنیم تا نشانگر در آنجا قرار بگیرد) و کلیدهای Ctrl و Space را به صورت همزمان از کیبورد فشار می دهیم تا تمامی روش های قابل انتخاب، نمایش داده شوند :
مدیر تالار های: