Android Multi Activity – Çoklu Sayfa Kullanımı

Android geliştiricileri olarak çoklu ekranlarda çalışmamız gerekebiliyor. Bu durumlarda activity yada fragment kullanabiliyoruz. Bu yazımda size çoklu activity kullanımı ve activity’ler arası veri paylaşımını anlatacağım.

Öncelikle intent şemamıza bakalım.

Yedek Activity Ekleme

Öncelikle MainActivity oluşturduğumuz projeden sonra otomatik olarak oluşturuluyor. Şimdi yedek activity ekleyelim ve ana activityden gireceğimiz değerleri yedek activityde gösterelim.

File > New > Activity > Empty Activity seçerek activity seçiyoruz.

Açılan ekranda Activity Name kısmına YedekActivity yazıyoruz ve finish butonu ile yeni activity ekliyoruz.

MainActivity.java

Ana Ekran tasarımımız.

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/editAd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Ad"
        android:layout_margin="15dp"/>

    <EditText
        android:id="@+id/editSoyad"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Soyad"
        android:layout_margin="15dp"/>

    <Button
        android:id="@+id/btnGonder"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="15dp"
        android:text="Gönder"/>

</LinearLayout>

View’leri tanımlıyoruz.

EditText editAd = findViewById(R.id.editAd);
EditText editSoyad = findViewById(R.id.editSoyad);
Button btnGonder = findViewById(R.id.btnGonder);

Şimdi butonumuzun click event’ini ekliyoruz.

btnGonder.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        
    }
});

Ve buton event’imiz bu şekilde.

btnGonder.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        String isim = editAd.getText().toString(); //editAd edittextinden değeri isim değişkenine aldık
        String soyisim = editSoyad.getText().toString();//editSoyad edittextinden değeri soyisim değişkenine aldık

        Bundle bundle = new Bundle();
        bundle.putString("name", isim); //'name' key'ine isim değişkenini verdik
        bundle.putString("surnmame", soyisim);//'surname' key'ine soyisim değişkenini verdik.
        //Buradaki keyler çok önemli YedekActivity'de verileri alırken bu keyleri harfiyen yazmamız gerek.
        //Büyük küçük harf duyarlıdır.

        Intent intent = new Intent(getApplicationContext(), YedekActivity.class);
        //intentimizi oluşturduk. bir context verdik ve gideceğimiz YedekActivity sınıfını verdik.
        intent.putExtras(bundle); //bundle değerimizi intente aktardık
        startActivity(intent); //activity başlattık

        //eğer diğer activity'e geçtikten sonra MainActivity kapansın isterseniz
        finish(); //methodunu çağırmalısınız.
    }
});

MainActivity.class son hali.

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final EditText editAd = findViewById(R.id.editAd);
        final EditText editSoyad = findViewById(R.id.editSoyad);
        Button btnGonder = findViewById(R.id.btnGonder);
        
        btnGonder.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String isim = editAd.getText().toString(); //editAd edittextinden değeri isim değişkenine aldık
                String soyisim = editSoyad.getText().toString();//editSoyad edittextinden değeri soyisim değişkenine aldık

                Bundle bundle = new Bundle();
                bundle.putString("name", isim); //'name' key'ine isim değişkenini verdik
                bundle.putString("surname", soyisim);//'surname' key'ine soyisim değişkenini verdik.
                //Buradaki keyler çok önemli YedekActivity'de verileri alırken bu keyleri harfiyen yazmamız gerek.
                //Büyük küçük harf duyarlıdır.

                Intent intent = new Intent(getApplicationContext(), YedekActivity.class);
                //intentimizi oluşturduk. bir context verdik ve gideceğimiz YedekActivity sınıfını verdik.
                intent.putExtras(bundle); //bundle değerimizi intente aktardık
                startActivity(intent); //activity başlattık

                //eğer diğer activity'e geçtikten sonra MainActivity kapansın isterseniz
                finish(); //methodunu çağırmalısınız.
            }
        });
    }
}

 

YedekActivity.java

Yedek Ekran tasarımımız.

activity_yedek.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    tools:context=".YedekActivity">

    <TextView
        android:id="@+id/textSonuc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textSize="25sp"/>
</LinearLayout>

Şimdi TextView’imizi tanımlayalım.

TextView textSonuc = findViewById(R.id.textSonuc);

Son olarak gelen değeri Intent olarak alıp yazdıralım.

Intent intent = getIntent(); //Gelen intent'i aldık.

String isim = intent.getStringExtra("name"); //MainActivity'deki 'name' keyi ile aldık.
String soyisim = intent.getStringExtra("surname"); //MainActivity'deki 'surname' keyi ile aldık.

textSonuc.setText("Ad: " + isim + "\nSoyad: " + soyisim); //Ve sonucu yazdırdık.

Son olarak YedekActivity.java dosyamızın son hali.

public class YedekActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_yedek);

        TextView textSonuc = findViewById(R.id.textSonuc);
        Intent intent = getIntent(); //Gelen intent'i aldık.

        String isim = intent.getStringExtra("name"); //MainActivity'deki 'name' keyi ile aldık.
        String soyisim = intent.getStringExtra("surname"); //MainActivity'deki 'surname' keyi ile aldık.

        textSonuc.setText("Ad: " + isim + "\nSoyad: " + soyisim); //Ve sonucu yazdırdık.
    }
}

Bu yazıda android çoklu activity ve veri paylaşımı konusuna yer verdik. Soru, görüş ve önerileriniz için lütfen yorum yapmayı unutmayın.

Photo of author

Mehmet Kurtgöz

Android Developer.

Yorum yapın