استفاده از یک متغیر در یک اکتیویتی و تاثیر تغیر آن در اکتیویتی دیگر
سلام . یه سوال خیلی ساده داشتم . من می خواستم توی یک اکتیویتی یک بولین تعریف کنم که با تغییر اون مثلا true شدنش در اکتیویتی دیگه یه تغییراتی بوجود بیاد . ممنون (راستی از static هم استفاده کردم ولی یا من بلد نبودم یا نمی شد)
توی کلاس G تعریفش کنید. مثلا به این صورت فیلد رو توی کلاس G تعریف کنید:
public static boolean booleanValue1;
بعد میتونید از داخل هر اکتیویتی ای به این صورت تغییرش بدید:
G.booleanValue1 = true;
G.booleanValue1 = false;
یا به این صورت از داخل هر اکتیویتی ای بهش دسترسی داشته باشید و مثلا مقدارش رو توی یک متغیر دیگه بریزید:
boolean booleanValue2 = G.booleanValue1;
استاد کلاس G رو توی بخش 05-02 Activity Life Cycle توضیح دادن اگه تا حالا ندیدید پیشنهاد میکنم حتما مشاهده اش کنید.
دوستان این جوابی که اضافه می کنم حکم سوال هم داره پس لطفا تصحیح بفرمائید:
به طور کلی به نظر می رسد به چند روش می توان اطلاعات را بین کلاس های مختلف به اشتراک گذاشت:
1- استفاده از متغیرهای استاتیک مثل همین چیزی که hamidd عزیز در بالا فرمودند که حالا می تونیم متغیر استاتیک را در کلاس G تعریف کنیم و یا حتی یک کلاس مخصوص متغیرهای عمومی بسازیم و یا آن را در یکی از کلاس هایی که در سیستم اشتراکی ما درگیر است قرار دهیم.
2- تعریف یک متد در کلاسی که قرار است متغیر در آن مورد استفاده قرار گیرد (تحت عنوان کلاس ست کردن متغیر) و احضار کردن آن در هر زمان که به خواهیم آن کلاس را احضار کنیم و نیاز به مقدار دهی به آن متغیر هم هست.
3- قرار دادن مقادیر متغیرها در یک کلید و ارسال آن به کلاس مورد نظر
4- استفاده از دیتابیس یا prefrense برای ذخیره اطلاعات و خواندن اطلاعات از آن جا که خوب البته سرعت پایین خواندن و نوشتن می تواند عملکرد برنامه را مختل سازد.
5- یه جیزی هم اینجا از دوستان یاد گرفتم که یه جورایی حالت خاص مورد یک هست.
با تشکر. می دونم اشتباه و کمبود زیاد داره لطفا همراهی کنید.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .