Android intent nedir ve ne işe yarar? Android intent kavramı kelime anlamı olarak amaç, niyet olarak ifade edilebilir. Android programlama da ise Activity’ler arası bir köprü görevi görmektedir.
Bir activity’den diğerine geçiş yapılabilir, cihazda daha önceden yüklü olan 3. parti uygulamalar arasında haberleşmeyi sağlar, cihaz ile birlikte gelen başlıca temel uygulamaların çalıştırılmasında kullanılabilir.
Android intent kısaca
Intent intent=new Intent(MainActivity.this,Main2Activity.class); startActivity(intent);
şeklinde kullanılır/tanımlanır. Daha detaylı inceleme ve açıklama için aşağıdaki örnek kodu inceleyebilirsiniz. Gerekli açıklamalar kodda yer almaktadır.
Ayrıca android activity arası veri geçişi, setText(), getText(), putExtra() kullanımı kodlarda yer almaktadır.
Android Intent, Activity Arası Veri Alışverişi ve Örnek Uygulama
Android MainActivity.java İçeriği
package com.example.mustafa.hafizaoyunu; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends AppCompatActivity { EditText isimAlma; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); isimAlma=(EditText)findViewById(R.id.editText_isimAlani); /* button_isimAlma Butonuna basıldığında yapılacak işlemleri için oluşturduğumuz yapı aşağıda verilmiştir. ((Button)findViewById(R.id.button_isimAlma)) kısmında button_isimAlma id'sine sahip buton type cast yapılarak kullanılmıştır. Bu yapı ayrıca Button buton=(Button)findViewById(R.id.button_isimAlma)); buton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); şeklinde de yapılabilirdi. */ ((Button)findViewById(R.id.button_isimAlma)).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Android intent kavramı başka bir Activity'yi başlatmak için kullanılır. // Intent() fonksiyonunda birinci değişken olduğumuz Activity , ikinci değişken ise açılmasını istediğimiz Activity'yi belirtir. Intent intent=new Intent(MainActivity.this,Main2Activity.class); //Diğer Activity dosyasına geçmeden önce Edittext'te yer alan değerimizi de açılacak olan activity'ye yollamak için: /* Diğer Activity veri aktarmak için putExtra() fonksiyonunu kullanıyoruz. ilk değişkenimiz veriyialmak için kullandığımız değişken ikinci değişkenimiz ise göndereceğimiz veriyi temsil etmektedir. */ intent.putExtra("gonderilen_isim",isimAlma.getText().toString()); // intent başlatmak için startActivity() fonksiyonunu kullanmamız gereklidir. startActivity(intent); } }); } }
Android Main2Activity.java İçeriği
Daha önce Edittext üzerinden veri alma işlemini ve bu veriyi ikinci Activity’ye gönderme işlemini yapmıştık( Yukarıda ). Aşağıda ise bize gönderilen veriyi Textview üzerinde gösterme işlemleri yer almaktadır.
package com.example.mustafa.hafizaoyunu; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; public class Main2Activity extends AppCompatActivity { TextView isimTextview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); // İlk Activity üzerinden gönderdiğimiz veriyi almak için getIntent() fonksiyonunu kullanmalıyız. // Daha sonra getStringExtra() fonksiyonuna ilk Activity üzerinden gödnerdiğimiz değişkene göre // değeri alabiliriz. Intent i=getIntent(); // Gelen veriyi isim değişkenine atadık. String isim=i.getStringExtra("gonderilen_isim"); isimTextview=(TextView)findViewById(R.id.kullanici_isim_Activity2); // setText() Fonksiyonu ile isim değişkenini isimTextview TextView'ına yazdırdık. isimTextview.setText(isim); } }
Aşağıda Activitylere ait olan ana ekran görüntüleri verilmiştir.
Hocam intent ile veri aktarımı yapabiliyorum fakat aldığım veriyi sadece oncreate metodu içinde kullanabiliyorum acaba oncreate dışında kullanmanın bir yolu var mıdır?