Android

Android Activity’ler Arası Veri Taşıma

Merhaba arkadaşlar bu yazımda bir activity’de bulunan veriyi diğer aktivitylere taşıyıp orada kullanmayı göreceğiz.

 

Arkadaşlar önceki yazımda sayfalar arası geçişi anlatmıştım orada sayfalar arasında geçiş sağlamak için “intent” kavramı kullanıyorduk. Sayfalar arasında veri transferi yapmak içinde intentleri kullanacağız. Ben bunu anlatmak için bir örnek üzerinden gitmeyi düşündüm. Kullanıcının ilk sayfada girdiği yazıyı ikinci sayfada göstereceğiz.

veriAktarımı veriAktarımı2

Uygulamamızı yazarken ilk olarak yeni bir activity ekleyeceğiz. Yeni activity eklemeyi önceki yazımda anlatmıştım ancak tekrar hatırlatayım.Yeni activity oluşturmakiçin Android Studio da ekranın sol tarafında bulunan dosyalardan “java” klasörüne faremizle sağ tık yapıp sırasıyla “new/activity” seçeneklerini seçip ardından kullanmak istediğimiz “Activity” seçiyoruz ve daha sonra yeni activitye bir isim veriyoruz.

Activity oluşturduktan sonra ilk sayfamıza bir “editText” ve bir “Buton” ekleyeceğiz. ben ekledim kodlarını aşağıda vereyim size.

Daha sonra java dosyamıza geçip buton ve editTexti java dosyamız da tanımlayıp bir isim vereceğiz.

Bu kod parçacıklarını daha önce görmüştük bir çok kez. Bu kodlarla buton ve editTexti tanımladıktan sonra buton için onClick(tıklanma) metodu yazacağız.

Şimdi ise önceki yazımızda gördüğümüz yeni activity başlatmak için gerekli kodları ve veri taşımak için gerekli olan kodları yazacağız.

İlk olarak CharSequence yani yazı dizisi oluşturup içerisine diğer activitye göndereceğimiz yazıyı yani kullanıcının editText’e girdiği yazıyı attık.

Daha sonra Intent oluşturup 2 parametre verdik. Parametrelerin ilki intentin çalışmaya başlayacağı sayfa yani bu sayfanın ismi, ikincisi ise yeni acılacak activitynin ismi.

Daha sonra Intent’e göndermek istediğimiz veriyi yükleyeceğiz bunun için

Kod satırını kullanıyoruz. Bu metod bizden 2 parametre isteyecektir. İstediği ilk parametre bir şifre olacaktır. Nedir bu şifre dersek diğer activitylerden veriyi alırken bu şifreyi girerek belirleyeceğiz veriyi. İlk parametre olarak şifreyi belirledikten sonra ikinci parametre olarak göndermek istediğimiz veririn saklandığı yazı dizisinin ismini veriyoruz.

Ardından yazdığımız intent’i başlatıyoruz ve bu sayfada işimiz bitiyor. Şimdi 2. eklediğimiz activitynin xml dosyasına gidelim.Burada ekranda sadece bir textView var ve ilk sayfada yazılan yazıyı burada ekranda göstereceğiz.

Şimdi ise java dosyamıza geçip ilk sayfadan gönderdiğimiz veriyi alıp textView üzerinde gösterelim. Burada da ilk olarak textViewi java dosyamıza tanımlayıp isim vereceğiz.

Bu kod parçacıklarıyla textViewi java dosyamıza tanımladık. Şimdi ise veriyi alacağız.Bunun için ise yazmamız gereken kodlar;

İlk sayfada hatırlarsınız intent ve putExtras kodlarını yazmıştık burada da ilk satırda onları bu sayfamızda kullanılabilir hale getiriyoruz.

İkinci satırda ise editText’e gelen yazıyı yazıyoruz bunun için ise ilk satırda oluşturduğumuz “bundle”  değişkenin ismini yazıp önceki sayfadaki yazı dizisini okuyacağız. Bunun için “getCharSequence()” metodunu kullanıyoruz ve bu metod’da bizden bir parametre istiyor. Bu parametre ise ilk sayfada belirlediğimiz şifre olacaktır ve bunu da String türüne çevirdikten sonra işlem bitmiş olacaktır.

 

 

a

Yorum

  • Merhabalar. Aşağıdaki kodu yaptığımda uygulama kapanıyor. Listeye tıkladığımda tıkladığım liste elemanını diğer taraftaki liste elemanına atmasını istiyorum. Bakabilir misiniz. ?

    public void onItemClick(AdapterView parent, View view, int position, long id) {
    char opname = (char) tAraclar.getItemAtPosition(position);

    Intent ıntent=new Intent(MainActivity.this,Main2Activity.class);///İntent ouşturup 2. activity’e gideceğini belirledik.
    ıntent.putExtra(“anahtar”, opname);//Gönderilecek veriyi ve bir anahtar belirledik.
    startActivity(ıntent);
    }

    Bundle gelenVeri=getIntent().getExtras();

    String[] araclar={
    “Telefon”,”Laptop”,”Bilgisayar”,”Tablet”,”Fotoğraf Makinası”,”Televizyon”,
    “Buzdolabı”,”Çamaşır Makinası”,”Saat”,gelenVeri.getCharSequence(“anahtar”).toString()
    };

Uğur KORKMAZ için bir cevap yazın X