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.



