ساخت متغیر سراسری (global) در برنامه نویسی اندروید

سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش ساخت متغیر سراسری (global) در برنامه نویسی اندروید می پردازیم استفاده از متغیر Global بهترین روش برای منتقل کردن داده بین اکتیویتی و یا فرگمنت است. شاید تا به حال به این مشکل برخورده باشید که بخواهید داده یا instance مربوط به یک اکیتیویتی یا متغیری را در کل اکتیویتی ها یا فرگمنت های برنامه استفاده کنید و نتوان در بعضی موارد آنها را PutExtera یا Broadcast کرد در ادامه با ما همراه باشید تا نحوه تعریف متغیر Global یا سراسری را یاد گیرید.
 
برای اینکار ابتدا باید یک کلاس ایجاد کنید پس یک کلاس به نام GlobalVariable.class ایجاد کنید همانند زیر

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 های خود (مثل متغیر ها و اکتیویتی ها) دسترسی داشته باشید می توانید همانند زیر عمل کنید.

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;

حال اگر بخواهید آنها را مقدار دهی کنید می توانید مثل زیر عمل کنید.

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 یا کمبود حافظه چیست ؟
 

مطالعه بیشتر