Android'de bir Activity'den diğerine nasıl veri aktarılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Birkaç yöntem vardır:
-
Intent Extras: En yaygın yöntem. Veriler
Bundleiçine paketlenir veIntent'e eklenir.// Birinci Activity'de Intent intent = new Intent(this, SecondActivity.class); intent.putExtra("anahtar", "değer"); // Primitif tipler intent.putExtra("nesne", new MySerializableObject()); // Serializable startActivity(intent); // İkinci Activity'de Bundle extras = getIntent().getExtras(); if (extras != null) { String değer = extras.getString("anahtar"); MySerializableObject nesne = (MySerializableObject) extras.getSerializable("nesne"); } -
Parcelable Nesneleri:
Serializable'a benzer, ancak sık kullanılan nesneler için daha verimlidir.Parcelablearayüzünü uygulamayı gerektirir.// Birinci Activity'de Intent intent = new Intent(this, SecondActivity.class); intent.putExtra("parcelable_nesne", new MyParcelableObject()); startActivity(intent); // İkinci Activity'de Intent intent = getIntent(); MyParcelableObject parcelableNesne = intent.getParcelableExtra("parcelable_nesne"); -
Shared Preferences: Uygulama yeniden başlatmaları arasında saklanması gereken küçük veri miktarları için uygundur.
// Birinci Activity'de SharedPreferences preferences = getSharedPreferences("benim_prefs", MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.putString("anahtar", "değer"); editor.apply(); // veya commit() // İkinci Activity'de SharedPreferences preferences = getSharedPreferences("benim_prefs", MODE_PRIVATE); String değer = preferences.getString("anahtar", null); // null varsayılan değerdir -
Statik Değişkenler: Tavsiye edilmez, çünkü OOP ilkelerini ihlal eder ve bellek sızıntılarına yol açabilir. Sadece çok basit durumlar için dikkatli kullanın.
// Statik sınıf veya erişilebilir başka bir statik değişken public static String statikVeri; // Birinci Activity'de StaticDataHolder.statikVeri = "veri"; // İkinci Activity'de String veri = StaticDataHolder.statikVeri; -
Veritabanı/Dosya: Büyük veri hacimleri veya kalıcı olması gereken veriler için. Veriler veritabanına (SQLite, Room) veya dosyaya kaydedilir ve ikinci Activity tarafından okunur.
-
ViewModel (LiveData ile birlikte): Mimari bileşenler bağlamında, ViewModel UI ile ilişkili verilerin yönetimi için tercih edilen yoldur. Veriler, paylaşılan ViewModel veya LiveData olayları aracılığıyla aktarılır.
// Birinci Activity'de (Kotlin) val intent = Intent(this, SecondActivity::class.java).apply { putExtra("veri_anahtarı", "veri_değeri") } startActivity(intent) // İkinci Activity'de (Kotlin) val veri = intent.getStringExtra("veri_anahtarı")
Veri aktarım yöntemi, iletilecek verilerin tipi ve hacmine, ayrıca kalıcılık gereksinimlerine bağlıdır. Intent Extras kullanımı, küçük veri hacimleri ve doğrudan Activity geçişleri için standarttır.