Android Intent, Activityler Arası Veri Alışverişi ve Örnek Uygulama

Categories AndroidPosted on

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.

Main2Activity.java
MainActivity.java

 

1 comment

  1. 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?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.