دسترسی به متغیرها به صورت 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 دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

-- بارگیری کد امنیتی --