Anasayfa / Android Dersleri / Android Dersleri 10 : Intent Kavramı ve Sayfalar Arası Veri Aktarma

Android Dersleri 10 : Intent Kavramı ve Sayfalar Arası Veri Aktarma

Merhaba arkadaşlar. Bu derste, intent kavramından özet olarak tekrar bahsedeceğim ve sayfalar arası veri aktarımı nasıl yapılır onu anlatacağım.

3.android dersinde, nasıl yeni sayfa ekleriz onu anlatmıştım tekrar anlatmayacağım. O yazıya gitmek için tıklayın

Bu derse intent kavramından bahsedeceğim ve intent ile sayfalar arası veri alışverişini anlatacağım. İlk olarak projemize yeni bir sayfa ekleyelim. Bu sayfa için .java uzantılı dosyamızı oluşturalım ve AndroidManifest dosyasına da eklemesini yapalım. Uygulamamızın ilk görüntüsü şu şekilde olacaktır.

android intent

activity_main.xml dosyamızın Graphical Layout kısmını yukarıdaki gibi yapıyoruz. 1 adet buton, 2 adet edittext ve 2 adet textview ekliyoruz. Şimdi bu sayfaya ait kodları yazacağız. Bunun için MainActivity.java dosyasına çift tıklayalım butona tıklandığında diğer sayfaya gitmesini sağlayalım.

android intent

İlk olarak sınıfımızın içerisinde buton, edittext ve textview için birer nesne oluşturuyoruz. Fakat gördüğünüz gibi altını çizdi ve hata verdi. Bunlara ait paketleri import etmemizi istiyor. Bunun için ctrl+shift+o tuşlarına basarak otomatik olarak bu paketleri import edebilirsiniz ya da uyarının üzerine gelip “Import” bunları sayfanıza dahil edebilirsiniz. Bu işlemleri yaptıktan sonra bu 3 kontrolümüzü, id’leri ile bağlayalım. Daha sonra butonumuz için bir listener oluşturalım. Kodumuzun son şekli aşağıdaki gibi olacaktır.

android intent

Burada 5 adet nesnemizi id’lerine bağladık ve daha sonra b nesnesi için bir listener oluşturduk. onClick() metodunun içine de butona tıklandığında olacakları yazacağız. Bu olacaklar, diğer sayfaya geçme ve girilen verileri diğer sayfaya taşımadır. Bu arada şunu da söyleyelim. Listener olayının tamamını tek tek yazmanıza gerek yok. new View. dedikten sonra ctrl+space tuşlarına bastığınızda kendisi tamamlayacaktır. Yani şunun gibi:

android intent

Burada en üsttekini seçtiğinizde otomatik olarak onClick() metodu da oluşacaktır. Bu şekilde ctrl+boşluk tuşlarını kullanarak kodlarınızı otomatik olarak tamamlatabilirsiniz. Buna intellisense özelliği denir. Şimdi diğer sayfaya geçmek için ve formda doldurulan verilerin aktarılması için yazmamız gereken kodları gösterelim.

android intent

onClick() metodu içindeki kodları açıklayalım(Butona tıklanınca). İlk satırda bir intent oluşturduk. Bu intent nesnesi üzerinden diğer sayfaya geçeceğiz. Bunu 3.android dersimizde anlatmıştık. 2.satırda ise i nesnesi üzerinden putExtra() metodunu çağırdık. Yani bu nesneye extra bilgiler yükleyeceğiz. Peki hangi bilgiyi ve hangi ad ile yükleyeceğiz. İlk parametreye, verileri hangi değişken üzerinde taşıyacağımız yazdık. Diğer parametreye ise hangi veriyi taşıyacağımızı yazdık. Biz edittext’ler içerisine yazılan veriyi getText() metodu ile aldık. Buradaki ilk parametre için şunu söyleyelim. src klasörü altında Degiskenler adında bir sınıf oluşturduk ve verilerimizi taşıyacak olan değişkenleri burada tanımladık. Bunu sınıf olarak tanımladık çünkü her iki ekranda da bu değişkenlerin tanınabilmesi gerekiyor. Ekran görüntüsünü aşağıda verelim.

android intent

Daha sonra setClass() metodunu kullanarak, hangi sayfanın açılacağını yani verilerin hangi ekrana taşınacağını belirledik. Burada sayfa olarak activity2.class‘ı gösterdik. Son olarak startActivity() ile de yeni bir aktiviteyi başlattık, parametre olarak da bu i nesnesini gönderdik. i nesnesi içerisinde 2 bilgi var. Bunları diğer sayfada kullanacağız.

Diğer Sayfa

android intent

Burada aslında 4 adet textview var fakat 2 tanesinin text özelliğini ilk aşamada boş ayarladık çünkü buralara, ilk sayfadan gelen verileri yazacağız. Şimdi bu sayfa için kod kısmına bakalım.

android intent

Burada 4 adet textview nesnesi oluşturduk fakat son ilk ikisi ile işlem yapmayacağız. Yani onlar, ekranda görünen textview’lar. Bu görünmeyen yani text özelliği ” ” (boş) atanmış textview’ların setText() metoduna parametre olarak verileri taşıyan değişkenleri verdik. Tabi bunları aşağıdaki metod ile kullanmamız gerekiyor.

Eğer alacağımız değer int ise, getInt() dememiz gerekir. İlk sayfayı doldurup butona tıkladığımızda diğer sayfaya geçecek ve ilk sayfada yazdıklarımızı gösterecektir. 

Mehmet Kirazlı

İstanbul Eyüp'te ikamet ediyorum. Giresun Alucra'lıyım. Bilgisayar Mühendisliği bölümünden 2013 yılında mezun oldum. "Yeni Başlayanlar için Java 8" kitabının yazarıyım. Şu anda özel bir firmada Mobil Yazılım Geliştirme Uzmanı olarak çalışıyorum.

İlginizi Çekebilir

Android Dersleri 29 : Telefon Rehberi Uygulaması Yapıyoruz

Merhaba. Yine uzunca bir aradan sonra yazmaya devam ediyorum. Bu yazımda,  veritabanında değinmediğim Where ifadesine yer …

13 Yorumlar

  1. Hocam, Allah sizden razı olsun. 10 numara anlatmışsınız. Umarım devamı gelir derslerin.

  2. hocam ben bu sekilde yeni bir aktiviti ekranında geçerken sürekli hata alıyorum

    startActivity(new Intent("com.trk.andoriddeneme1.Ekran3Activity"));

    yerine baska bi yerden gördügüm kadarıyla

    Intent i3=new Intent(MainActivity.this,Ekran3Activity.class);

    startActivity(i3);

    bu sekil kullanıyorum fakat her yerde sizin gösterdiğiniz gibi yeni aktivity açılıyor ben niye yapamadım acaba:)?

  3. <action android:name manifest dosyasında nerden yazacagız bulamadım 3. dersinizdede ora açıklanmıyor tam olarak yada ben anlamadım bende yeni sayfaya geçerken hep hata alıyorum hocam program durduruluyor sizce neden?

  4. Teşekkür ederim hocam

  5. Merhaba , programda ikinci aktiviteye geçiyor ancak edittextlerden yazı gelmiyor .problem nedir acaba?TESEKKURLER

  6. Ibrahim Yilmaz

    Küçük bir tavsiye;
    Resim önizlemelerinin büyütülmesi görsellik ve işlevsellik açısından daha faydalı olacaktır.

  7. kodlarım tamamen aynı ama uygulamada butona bastığım an ‘working stopped’ hatası alıp force close yapmak zorunda kalıyorum nasıl düzeltebilirim kodlar tamamen aynı

    • hocam aynı değildir mutlaka bir yerde hata vardır. butonun click olayının yapıldığı yere breakpoint koyun ve uygulamayı debug modda çalıştırın ve hata nerede öğrenin.

  8. Degiskenlerin tanımlandığı kısımda
    string ad=””; string soyad:””; yerine string ad=”ad”; ve string soyad=”soyad”
    yazarsan 1 saattir uğraştığım bi hatayı düzeltmiş olacaksın.Paylaşım için teşekkürler…

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir