Android Sayfalar Arası Veri Aktarma

0
Android Sayfalar Arası Veri Aktarma

Herkese merhaba bu yazıda sayfa’lar (activityler) arası veri aktarmayı anlatmaya çalışacağım. Projelerimizde elde ettiğimiz verileri her zaman tek bir sayfa da değilde başka sayfa’larda da kullanmak isteyebiliriz bunu yapmak içinde en pratik yol sayfa’lar arası  mesajlar göndermektir. Bu mesajın türü istediğimiz türde olabilir (int,string,byte,char,boolean).  Mesaj gönderilirken mesaja bir string isim vermeliyiz ki mesaj gönderdiğimiz sayfa’dan bu isim ile erişebilelim verilerimize bu mesaj yollama işleminde kullanıdğımız fonksiyon putExtra fonksiyonu putExtra fonksiyonuna oluşturulan bir intent aracılığı ile ulaşabiliriz. Bu fonksiyon 2 adet parametre almakta bu parametrelerden ilki biraz önce de dediğimiz gibi yollanacak mesajın adı diğer parametre ise yollayacağımız verileri içeren parametre.

Şimdi veri göndereceğimiz sınıf için kullanımına bakalım;

import android.content.Intent;
import android.icu.text.DateFormat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    boolean kontrol=false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button veriGonder=(Button)findViewById(R.id.button);//buton tanımlaması
        veriGonder.setOnClickListener(new View.OnClickListener() {//butona tıklanma olayı
            @Override
            public void onClick(View view) {
                kontrol=true;//butona tıklanma olayı olursa değer true olsun
                Intent gonder=new Intent(MainActivity.this,veriAlanLayout.class);//yeni açaçağımız sayfa
                gonder.putExtra("veri",kontrol);//açtığımız sayfaya değer gönderme
                startActivity(gonder);
            }
        });


    }
}

Burada en başta göndereceğimiz değeri global olarak tanımlıyoruz ben hep bu şekilde kullanıyorum fonksiyon içinde yapılan değişken tanımlamalarında değişkene her yerden ulaşamıyoruz, içerde yapılan değişken tanımlamalarında değişkeni final yapmamızı istiyor vs gibi durumlardan dolayı değişkeni global olarak tanımladık. İşlemi butona basınca yapmasını istediğimiz için bir adet buton tanımladık. Buton’un setOnclickListener event’ının içine bir intent oluşturduk intent dediğimiz sınıf bize layout’lar arası geçiş yapmamızı sağlayan sınıf bu sınıftan gonder adında bir nesne oluşturduk. Intent oluşturulurken nereden nereye gideceği söylenmelidir misal bizim örneğimizde MainActiviy’den veriAlanLayout’a gideceğini nesne oluştrurken belirttik. Daha sonra bizim için önemli olan kısıma putExtra kısımına geliyoruz burada belirttiğimiz gibi mesaj adını ve mesajı yazıyoruz son olarak da yeni açılacak sayfayı başlatıyoruz.

Şimdi veri alacağımız sınıf için kullanımına bakalım;

Bu layout’da bir checkBox var ve eğer veri yoksa checkBox işaretsiz ve text kısmında “veri gelmedi” yazacak eğer karşı taraftan veri gelmişse yani true değeri bize ulaşmışsa checkBox işaretlenecek ve text değeri “veri geldi” şeklinde değişecek.

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CheckBox;

public class veriAlanLayout extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_veri_alan_layout);
        CheckBox checkBox=(CheckBox)findViewById(R.id.checkBox);

        Boolean gelenKontrolDegeri;
        gelenKontrolDegeri=getIntent().getExtras().getBoolean("veri");//karşıdan gelen veri bool tipinde bir değikene aktarılıyor

        if(gelenKontrolDegeri==true)//karşıdan gelen değer okuanbildiyse istenilen işlemler gerçekleştiriliyor
        {
                checkBox.setChecked(true);
                checkBox.setText("veri geldi");
        }
        else
        {
            checkBox.setChecked(false);
            checkBox.setText("veri gelmedi");
        }

    }
}
</pre>

 

Burada en önemli yer karşı taraftan gönderilen veriyi aldığımız yer o da şu şekilde getIntent().getExtras().getBoolean(“veri”) burada en son karşıdan gönderdiğimiz mesaj adını yazarak içindeki değere ulaşıyoruz ve isteiğimiz şartları gerçekleştiriyoruz.

Herkese iyi çalışmalar.

LEAVE A REPLY