Android Dersleri 10
Merhaba arkadaşlar. Bu derste, intent kavramından özet olarak tekrar bahsedeceğim ve uygulamamızdaki diğer sayfaya nasıl veri aktarırız 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 veAndroidManifest dosyasına da eklemesini yapalım. Uygulamamızın ilk görüntüsü şu şekilde olacaktır.
activity_main.xml dosyamızın Graphical Layout kısmını yukarıdaki gibi yapıyoruz. 1 adet buton, 2 adetedittext ve 2 adet textview ekliyoruz. Şimdi bu sayfaya ait kodları yazacağız. Bunun için MainActivity.javadosyasına çift tıklayalım butona tıklandığında diğer sayfaya gitmesini sağlayalım.
İ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çinctrl+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.
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:
Burada en üsttekini seçtiğinizde otomatik olarak onClick() metodu da oluşacaktır. Bu şekilde ctrl+boşluktuş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.
onClick() metodu içindeki kodları açıklayalım(Butona tıklanınca). İlk satırda bir intent oluşturduk. Buintent nesnesi üzerinden diğer sayfaya geçeceğiz. Bunu 3.android dersimizde anlatmıştık. 2.satırda ise inesnesi ü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.
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.
Şimdi diğer sayfanın tasarımını da aşağıdaki gibi yapalım.
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.
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.
getIntent().getExtras().getString();
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.