Android-də bir Activity-dən digərinə məlumatları necə ötürmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Müxtəlif üsullar mövcuddur:
-
Intent Extras: Ən çox istifadə olunan üsul. Məlumatlar
Bundle-ə yığılır vəIntent-ə əlavə olunur.// Birinci Activity-də Intent intent = new Intent(this, SecondActivity.class); intent.putExtra("açar", "dəyər"); // Primitiv tiplər intent.putExtra("obyekt", new MySerializableObject()); // Serializable startActivity(intent); // İkinci Activity-də Bundle extras = getIntent().getExtras(); if (extras != null) { String dəyər = extras.getString("açar"); MySerializableObject obyekt = (MySerializableObject) extras.getSerializable("obyekt"); } -
Parcelable Ob'ektlər:
Serializable-a bənzər, lakin daha səmərəli.Parcelableinterfeysini həyata keçirməyi tələb edir.// Birinci Activity-də Intent intent = new Intent(this, SecondActivity.class); intent.putExtra("parcelable_obyekt", new MyParcelableObject()); startActivity(intent); // İkinci Activity-də Intent intent = getIntent(); MyParcelableObject obyektParcelable = intent.getParcelableExtra("parcelable_obyekt"); -
Shared Preferences: Kiçik məlumatların ötürülməsi üçün uyğundur və tətbiqin işə salınması arasında saxlanılır.
// Birinci Activity-də SharedPreferences preferences = getSharedPreferences("mənim_prefs", MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.putString("açar", "dəyər"); editor.apply(); // və ya commit() // İkinci Activity-də SharedPreferences preferences = getSharedPreferences("mənim_prefs", MODE_PRIVATE); String dəyər = preferences.getString("açar", null); // null - standart dəyər -
Statik dəyişənlər: Tövsiyə edilmir, çünki OOP prinsiplərini pozur və yaddaş sızıntılarına səbəb ola bilər. Yalnız çox sadə hallarda ehtiyatla istifadə edin.
// Statik sinifdə və ya digər əlçatan statik dəyişəndə public static String statikMəlumat; // Birinci Activity-də StaticDataHolder.statikMəlumat = "məlumat"; // İkinci Activity-də String məlumat = StaticDataHolder.statikMəlumat; -
Verilənlər bazası/Fayl: Böyük həcmli məlumatlar və ya davamlı saxlanması lazım olan məlumatlar üçün. Məlumatlar SQLite, Room və ya faylda saxlanılır və ikinci Activity onları oxuyur.
-
ViewModel (LiveData ilə birlikdə): Arxitektura komponentləri kontekstində, ViewModel UI ilə əlaqəli məlumatların idarə olunması üçün üstün üsuldur. Məlumatlar Activity-lər arasında paylaşılır və ya LiveData üzərindən hadisələrlə ötürülür.
// Birinci Activity-də (Kotlin) val intent = Intent(this, SecondActivity::class.java).apply { putExtra("məlumat_açarı", "məlumat_dəyəri") } startActivity(intent) // İkinci Activity-də (Kotlin) val məlumat = intent.getStringExtra("məlumat_açarı")
Yöntə seçimi, ötürüləcək məlumatların tipi və həcmi, həmçinin davamiyyət tələblərinə bağlıdır. Intent Extras vasitəsilə məlumat ötürmə, kiçik həcmli məlumatlar və birbaşa Activity keçidləri üçün standartdır.