Android Studio ve java ile Activityler arası arraylist taşıma

Bu yazıda Android Studio ve java kullanarak activityler arası veri taşıma işlemini arraylist ve singleton kullanarak yapma anlatılmaktadır.

Adım1: MainActivity Tasarımını yap.

MainActivity tasarım kodları

<?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"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/btnEkle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="ekleSayfasi"
        android:text="Ekle" />

    <ListView
        android:id="@+id/listele"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

ekle butonu ile yeni bir activity oluşturulacaktır.

Adım2: MainKaydet Activity ekle ve tasarımını yap.

Proje klasör yapısında App>Java> paket ismi > fare sağ tuş > new > activity > empty activity yolu izlenerek yeni bir activity oluştur. 

Activity ismini MainKaydet olarak belirle.

MainKaydet tasarım kodları

<?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:padding="24dp"
    tools:context=".MainKaydet">

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="24dp"
        android:text="Kişi Kaydet"
        android:textAlignment="center"
        android:textSize="24sp"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/edAd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Adınızı Giriniz"
        android:inputType="textPersonName" />

    <EditText
        android:id="@+id/edSoyad"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Soyadınızı Giriniz"
        android:inputType="textPersonName" />

    <EditText
        android:id="@+id/edYas"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Yaşınıızı Giriniz"
        android:inputType="number" />

    <Button
        android:id="@+id/btnKaydet"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:onClick="kaydet"
        android:text="Kaydet" />
</LinearLayout>

Adım3: Kisi.java Sınıfını oluştur.

Proje klasör yapısında App>Java> paket ismi > fare sağ tuş > new Class 
Class ismini  Kisi olarak belirleyin.

public class Kisi {
    public String ad, soyad;
    public int yas;

    public Kisi( String ad, String soyad, int yas) {
        this.ad = ad;
        this.soyad = soyad;
        this.yas = yas;
    }
    @Override
    public String toString() {
        return ad +" - "+ soyad + " - " + yas ;
    }
}

Adım4: Singleton.java Sınıfını oluştur.

Proje klasör yapısında App>Java> paket ismi > fare sağ tuş > new Class 
Class ismini  Singleton olarak belirle.

public class Singleton {
    ArrayList<Kisi> kisiler = new ArrayList<Kisi>() {{
        add(new Kisi("Ali", "Mert", 20));
        add(new Kisi("Veli", "Ok", 22));
    }};
    private static Singleton singleton;
    private Singleton(){
    }
    public ArrayList<Kisi> getKisiler() {
        return kisiler;
    }
    public void kisiEkle(Kisi a) {
        kisiler.add(a);
    }
    public Kisi kisiDetay(int position) {
        return kisiler.get(position);
    }
    public static Singleton getInstance(){
        if (singleton==null){
            singleton = new Singleton();
        }
        return singleton;
    }
}

Adım5: MainActivity.java dosyasını düzenle.

public class MainActivity extends AppCompatActivity {
    Button btnEkle;
    ListView listele;
    ArrayList<Kisi> kisiler;

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

        kisiler = Singleton.getInstance().getKisiler();
        listele = findViewById(R.id.listele);
        adapter = new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1, kisiler);
        listele.setAdapter(adapter);

        listele.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Kisi kisiler = Singleton.getInstance().kisiDetay(position);
                Toast.makeText(MainActivity.this, kisiler.yas + " "+ kisiler.ad , Toast.LENGTH_SHORT).show();
            }
        });
    }

    public void ekleSayfasi(View view) {
        Intent intent = new Intent(getApplicationContext(), MainKaydet.class);
        startActivity(intent);
    }
}

Adım6: MainKaydet.java dosyasını düzenle.

public class MainKaydet extends AppCompatActivity {
    EditText ad, soyad, yas;

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

        getSupportActionBar().setTitle("Kişi Ekle");

        ad = findViewById(R.id.edAd);
        soyad = findViewById(R.id.edSoyad);
        yas = findViewById(R.id.edYas);
    }

    public void kaydet(View view) {
        Kisi kisiler = new Kisi(
                ad.getText().toString(),
                soyad.getText().toString(),
                Integer.parseInt(yas.getText().toString())
        );

        Singleton.getInstance().kisiEkle(kisiler);
        Intent intent = new Intent(getApplicationContext(),MainActivity.class);
        startActivity(intent);
    }
}

Uygulama Önizle