من کدهاتون رو خوندم، فکر می کنم شما در بحث تعریف متغیرها به صورت Global و با استفاده از Class ، اشتباه عمل می کنید. ما وقتی متغیری را با Class تعریف می کنیم، نمی توانیم آن را تغییر بدهیم. یعنی تنها در صورتی که یکی شیء (object) از آن کلاس (Class) بسازید، آنگاه می توانید مقدار آن متغیر را برای شیء ساخته شده تغییر بدهید، نه برای کلاس اصلی.
مثلا کلید شماره 343 را بخوانید. در آن، کلاس را به صورت زیر تعریف کرده ایم :
بعد دریافت مقادیر در سایر کلاس ها (از جمله Activity ها) به صورت زیر است :
اکنون فرض کنید که در یک Activity دلخواه، کد زیر را می نویسیم :
متغیر str_2 حاوی همان مقدار تعریف شده در کلاس اصلی (یعنی text) می باشد. یعنی کد زیر، تنها برای شیء با نام global ، مقدار متغیر را تغییر می دهد :
با توجه به توضیحاتی که دادم، حدس می زنم با کد زیر که در کدهایتان نوشته اید، فرض کرده اید که مقدار متغیر تغییر داده شده :
اما باید توجه داشت که نمی توانیم مقدار تعریف شده در کلاس اصلی را تغییر بدهیم (که بعد انتظار داشته باشیم که با ساخت شیء های جدید در Activity های دیگر، مقادیر جدید در آنها وجود داشته باشد).
البته چون کدهاتون رو چون ناقص دیدم، این محتمل ترین موردی بود که به ذهنم رسید.
مثلا کلید شماره 343 را بخوانید. در آن، کلاس را به صورت زیر تعریف کرده ایم :
کد پیاچپی:
public class Globals extends Application {
public String myText = "text";
}
بعد دریافت مقادیر در سایر کلاس ها (از جمله Activity ها) به صورت زیر است :
کد پیاچپی:
Globals global = new Globals();
String mt = global.myText;
اکنون فرض کنید که در یک Activity دلخواه، کد زیر را می نویسیم :
کد پیاچپی:
Globals global = new Globals();
String str = global.myText;
global.myText = "another text";
Globals global_2 = new Globals();
String str_2 = global_2.myText;
متغیر str_2 حاوی همان مقدار تعریف شده در کلاس اصلی (یعنی text) می باشد. یعنی کد زیر، تنها برای شیء با نام global ، مقدار متغیر را تغییر می دهد :
کد پیاچپی:
global.myText = "another text";
با توجه به توضیحاتی که دادم، حدس می زنم با کد زیر که در کدهایتان نوشته اید، فرض کرده اید که مقدار متغیر تغییر داده شده :
کد پیاچپی:
Global.newimag = b;
اما باید توجه داشت که نمی توانیم مقدار تعریف شده در کلاس اصلی را تغییر بدهیم (که بعد انتظار داشته باشیم که با ساخت شیء های جدید در Activity های دیگر، مقادیر جدید در آنها وجود داشته باشد).
البته چون کدهاتون رو چون ناقص دیدم، این محتمل ترین موردی بود که به ذهنم رسید.
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.