1-Aktiviteler arası veri taşıma yöntemleri-Intent (Kotlin)

Sinan Çakır
3 min readFeb 9, 2018

--

Merhaba, bu yazımda Android platformunda, Kotlin dilinin kod örnekleriyle, aktiviteler arasında nasıl veri taşıyabileceğimizden bahsediyor olacağım.

Elimizde kullanıcının girdiği isim ve telefon bilgisi olsun. Bu iki bilgiyi aşağıdaki yöntemlerle, aktiviteler arasında taşıyalım.

  1. Intent

Layout tasarımında 2 EditText ve bir Buton olsun.

Görüntü bu şekilde olacaktır.

EditText tanımlamaları.

private var edtName : EditText? = null
private var edtPhone : EditText? = null

Daha sonrasında Layoutta oluşturulan EditText ‘ ler aktiviteye bağlanmalı.

edtName = findViewById(R.id.activity_intent_edtName)
edtPhone = findViewById(R.id.activity_intent_edtPhone)

Ekran tasarımından da anlaşılacağı üzere, EditText ’ lerden alınan verileri başka bir aktiviteye göndermek için butona basmak gerekecek. Buton EditText ’ lerde olduğu gibi findViewById diyerek aktiviteye bağlanabilir. Ancak Kotlin dilinin bir güzelliği olan ‘ synthetic ’ importu ile butonu almak daha kolay ve daha az kod demek. Layoutta Butona hangi id verildi ise direk id ismi çağrılır.

activity_intent_btnIntent.setOnClickListener(this)

Butonu alındı ve tıklanma olayını kontrol için setOnClickListener tanımlandı. (this) ifadesini yazıldığında IDE bize View.OnClickListener ’ ı implement etmek zorunda olduğunu ve onClick metodunu override etmek gerektiğini uyarı olarak gösterecektir.

override fun onClick(v: View?) {

}

onClick metodunun içinde başka aktiviteye geçileceği için Intent oluşturuldu.

val intent = Intent(this, DataIntentActivity::class.java)

Intent ’ in ilk parametresi hangi aktivitede olduğudur. this ifadesi bu aktivite olduğunu belirtir. İkinci parametresi ise hangi aktiviteye gideceğidir. Daha sonra oluşturulacak olan DataIntentActivity ‘ e gideceği belirtildi. Javada aktivite isminden sonra ‘ .class ‘ demek gerekirdi, Kotlinde bu ifade ‘ ::class.java ‘ oldu.

Intent ‘ e veri koymak için ( Int, String, Double, Float ..) putExtra metodunu kullanılır. Aldığı parametrelerden ilki key değeri. Verilerin okunacağı aktivitede bu key değeri yazılarak okuma işlemi yapılır. İkincisi Intent ‘ e koyulacak veri bilgisi.

intent.putExtra(“Name”, edtName!!.text.toString())
intent.putExtra(“Phone”,edtPhone!!.text.toString())

EditText ‘ lerdeki bilgiler intente koyuldu. Son aşama olarak intenti başlatmak gerekir.

startActivity(intent)

Intent başladıktan sonra aktivitenin ölmesi istenirse finish() metodunu kullanılır. Gidilen aktiviteden geri dönmek istendiğinde bu aktivite öleceği için çalışmaz.

finish()

Intent ile veri gönderildi. Şimdi gelen verilerin okunacağı bir aktivite olmalı. Layout tasarımı şöyle olsun.

Verilerin gösterileceği bir TextView ve Ana ekrana dönmek için bir Buton.

Gelen verileri okumak için intent.getStringExtra(“key bilgisi”) metodu kullanılır. Gönderilen veri String olduğu için getStringExtra metodunu kullanıldı. Eğer Int bir veri gönderiliyorsa intent.getIntExtra(“key bilgisi”) motudu kullanılmalıdır.

val name = intent.getStringExtra(“Name”)

val phone = intent.getStringExtra(“Phone”)

name ve phone bilgisi Layoutta oluşturulan TextView ‘ a yazdırılsın.

activity_data_txtData.text = “Name : “+name + “\nPhone : “ + phone

Intent aktiviteler arası veri göndermeden sadece aktivite geçişleri için de kullanılır. Ana ekrana dönme butonuna tıklandığında yapılacak işlemde sadece Intent başlatılmalıdır.

Böylece Intent ile Name ve Phone verileri aktiviteler arasında gönderilip okundu.

Uygulamanın tüm kodlarına buradan ulaşabilirsiniz.

--

--