Android Global Değişkenler

Android Global Değişkenler

Global değişkenler Android uygulamalarında sınıflar arası veri taşımak için kullanılan yöntemlerden birisidir.Veri taşımak için özellikle activity’ler arası veri transferinde intent’ler ile verileri gönderebiliyoruz fakat daha karmaşık işlemler gerektiğinde verilerin sadece bir activity sınıfına gönderilmesini değil uygulama içerisinde diğer sınıflardan da ulaşabilmek için kullanılmaktadır.Adına global değişkenler dense de aslında bir sınıf yaratıp bu sınıf üzerinde instance alarak obje yaratmaya dayanmaktadır,tabi standart bir nesne instance ilişkisi olmayacaktır.

Basit bir örnek yapalım ve örnek uygulamamız için 3 adet sınıf bulunacak 2 sınıfımızı activity’den kalıtacağız diğerini ise Aplication dan kalıtacağız.

Değişkenlerimizi tutacağımız sınıfı oluşturmakla başlayalım 2 adet string değişken yer alacak get ve set metotlarını yazacağız ve istediğimiz yerde değişkenlere ulaşmamızı sağlayacak.

....
public class User extends Application {

String ad,soyad;

    public String getAd() {
        return ad;
    }

     public void setAd(String ad) {
        this.ad = ad;
    }
   public String getSoyAd() {
        return soyad;
    }

  
 public void setSoyAd(String soyad) {
        this.soyad = soyad;
    }
}

Yukarıdaki sınıfı manifest üzerinden belirtmemiz gerekecek bunun için manifest dosyasında aplication tagı altında name olarak eklememiz gerekiyor.

<application
        ...
        android:name=".User"
 <!--
 Class adını ekledik bazı durumlarda kullandığınız ide ye göre
 paket adı daha sonra sınıf adı isteyebilir.
 -->
         ...

 

Şimdi bir sınıf daha oluşturalım bu sınıfımız ise bizden ad soyad verilerini alsın

...
public class LoginActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
     User user = (User) getApplicationContext();
     user.setAd("Kemal");
     user.setSoyAd("Sunal");

    }

Şimdi ise başka bir sınıftan bu değişkenlere ulaşalım.

...
public class HomeActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
     User user = (User) getApplicationContext();
     String ad= user.getAd("Kemal");
     String=soyAd=user.getSoyAd("Sunal");

    }