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);
}
}