دسترسی به متغیرها به صورت global یا سراسری
وقتی ما نیاز داریم که متغیرهای مختلف را در برنامه ها داشته باشیم، می توانیم متغیر مورد نظر خود را بصورت global یا سراسری تعریف کنیم . در اینجا، من می خواهم توضیح دهم، چگونه می توان با تعریف متغیر و کلاس بصورت سراسری در برنامه های آندروید، از این کلاس پایه بتوان در سایر کلاس استفاده نمود. بهترین راه برای انجام این کار این است که یک کلاس ایجاد کنید وآن را به نوع android.app.Application گسترش دهید و کلاس خود را در تگ برنامه در فایل AndroidManifest.xml تعریف کنید. آندروید نمونه ای از آن کلاس را ایجاد می کند و آن را در تمام زمینه در دسترس شما قرار خواهد داد . از این رو شما می توانید از کلاس () Context.getApplicationContext از کلاس خود در هر گیرنده / سرویس پخش / پخش در محیط برنامه (محیط) استفاده کنید.
مراحل ایجاد متغیرهای سراسری
گام اول:
کلاس جدیدی را ایجاد کنید و آن را به نوع android.app.Application گسترش دهید. شما از این کلاس به عنوان کلاس سراسری برای محیط برنامه خود (Conext) استفاده خواهید کرد.
package com.example.psrd.test; import android.app.Application; public class GlobalClass extends Application{ private String name; private String email; public String getName() { return name; } public void setName(String aName) { name = aName; } public String getEmail() { return email; } public void setEmail(String aEmail) { email = aEmail; } }
سپس کلاس مربوطه را در فایل AndroidManifest در تگ مربوط به application تعریف کنید. که در مثال پایین با رنگ قرمز مشخص شده است.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.psrd.test"> <application android:name="com.example.psrd.GlobalClass" android:allowBackup="true" android:icon="@drawable/myicon" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
در نهایت شما می توانید با استفاده از متد () Context.getApplicationContext در هر زمینه ای قرار دارید می توانید به متغیرهای سراسری در سرتاسر برنامه دسترسی داشته باشید مانند:
package com.example.psrd.test;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class YourClass extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.YourLayout);
Button secondBtn = (Button) findViewById(R.id.second);
final GlobalClass globalVariable = (GlobalClass) getApplicationContext();
globalVariable.setName("definename");
globalVariable.setEmail("defineemail");
secondBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(getBaseContext(), secoundActivity.class);
startActivity(intent);
}
});
}
}
با آرزوی موفقیت.
0 دیدگاه