ساخت متغیر سراسری (global) در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش ساخت متغیر سراسری (global) در برنامه نویسی اندروید می پردازیم استفاده از متغیر Global بهترین روش برای منتقل کردن داده بین اکتیویتی و یا فرگمنت است. شاید تا به حال به این مشکل برخورده باشید که بخواهید داده یا instance مربوط به یک اکیتیویتی یا متغیری را در کل اکتیویتی ها یا فرگمنت های برنامه استفاده کنید و نتوان در بعضی موارد آنها را PutExtera یا Broadcast کرد در ادامه با ما همراه باشید تا نحوه تعریف متغیر Global یا سراسری را یاد گیرید.
برای اینکار ابتدا باید یک کلاس ایجاد کنید پس یک کلاس به نام GlobalVariable.class ایجاد کنید همانند زیر
1 2 3 4 5 6 7 | public class GlobalVariable extends Application { public String First_Value = "value"; public MainActivity mActivity = null; public int Integer_data = 0; public Float f_data = 15; public boolean yn = true; } |
در کلاسی که ایجاد کردید باید یک تغییر بدهید یک Extend از نوع Application همانند بالا برای آن تعریف کنید بعد از اینکار می توانید متغیر یا Instance یا نمونه ای از اکتیویتی خود را نیز در آن تعریف کنید و در آنجا از آن یک نمونه بسازید تا بعدا از آن استفاده کنید.
بعدا اگر بخواهید مقادیر یا Instance های خود (مثل متغیر ها و اکتیویتی ها) دسترسی داشته باشید می توانید همانند زیر عمل کنید.
1 2 3 4 5 6 | GlobalVariable globalvariable = new GlobalVariable(); String str_data = globalvariable.First_Value; MainActivity newMain = globalvariable.mActivity; int int_data = globalvariable.Integer_data; Float f_data = globalvariable.f_data; boolean yn = globalvariable.yn; |
حال اگر بخواهید آنها را مقدار دهی کنید می توانید مثل زیر عمل کنید.
1 2 3 4 5 6 | GlobalVariable globalvariable = new GlobalVariable(); globalvariable.First_Value = "sample_data"; globalvariable.mActivity = MainActivity.this; globalvariable.Integer_data = 5; globalvariable.f_data = 3.14; globalvariable.yn = false; |
این آموزش شاید راهی برای منتقل کردن داده باشد ولی حتما قبل از اینکه از این داده استفاده کنید بررسی کنید پر هستند یا خیر چون در صورت خالی بودن ممکن است باعث Memory Leak یا کرش برنامه شما در هنگام استفاده شوند.
Memory Leak یا کمبود حافظه چیست ؟
مرسی بابت اموزش های کاربردیتون مثال های که زدین همه متغییر بودن اگر بخوایم یه ویو رو سراری تعریف کنیم میشه بگین چطور؟
برای مثال من میخوام از اکتیویتی دوم بکگراند باتن اکتیویتی اول رو تغییر بدم
کافیه متغیر از نوع Button تعریف کنید و در اکتیویتی اول آن را پر کنید مثل زیر
موفق باشید.
مرسی از پاسختون میشه لطفا یک نگاه به کد های من بکنید کاری که گفتین رو انجام دادم نمیدونم کجاش اشتباه که عملیات انجام نمیشه ؟
http://s8.picofile.com/file/8331087368/Screenshot_403_.png
http://s9.picofile.com/file/8331087376/Screenshot_404_.png
http://s8.picofile.com/file/8331087392/Screenshot_405_.png
کدها درسته خطایی ندیم توش
http://s8.picofile.com/file/8331087392/Screenshot_405_.png قسمت لاگ کت ارور منه چطور رفع کنم؟
کد بالا میگه که button پر نشده.
سلام
من میخوام ی boolean درست کنم که مثلا مقدارش false هست و توسط عملیاتی مثل کلیک به true تغییر کنه مهم تر اینکه من میخوام این تغییر رو به طور کلی ذخیره کنم طوری که وقتی از برنامه خارج میشن و دوباره واردش میشن مقدار boolean=true باشه.
لطفا راهنمایی کنید
Sarmansarin@gmail.com