Junior
Kako preneti podatke iz jedne aktivnosti u drugu u Androidu?
sobes.tech АИ
Одговор од АИ
Podaci se mogu preneti korišćenjem Intent:
-
U izvornom Activity: Stavite podatke u Extras
Intentpomoću metoda poputputExtra(String key, value).// Priprema Intent val intent = Intent(this, TargetActivity::class.java) // Dodavanje podataka intent.putExtra("myString", "Pozdrav iz prvog Activity") intent.putExtra("myInt", 123) intent.putExtra("myBool", true) // Možete prenositi objekte koji implementiraju Parcelable ili Serializable // intent.putExtra("myObject", myParcelableObject) // Pokretanje novog Activity startActivity(intent) -
U ciljanom Activity: Izvadite podatke iz Extras
Intentdobijenog u metodionCreateilionNewIntent.// U onCreate() ciljnog Activity override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_target) // Dobijanje Intent-a koji je pokrenuo ovaj Activity val intent = intent // Izvlačenje podataka po ključu val myString = intent.getStringExtra("myString") val myInt = intent.getIntExtra("myInt", 0) // Drugi argument je podrazumevana vrednost val myBool = intent.getBooleanExtra("myBool", false) // Obrada izvlačenih podataka println("Primljena linija: $myString") println("Primljeni broj: $myInt") println("Primljeni boolean: $myBool") // Za Parcelable ili Serializable objekte // val myObject = intent.getParcelableExtra<MyParcelableClass>("myObject") }
Druge metode prenosa podataka, pogodne za složenije scenarije ili velike količine podataka:
ViewModeldeljen između Fragments/Activities (kroz SharedViewModel): Pogodno za zajedničke podatke između povezanih komponenti.Bundle(unutar Extras Intent):putExtrazapravo koristiBundleunutar.- Staticke promenljive/singleton objekti: Treba ih koristiti oprezno, mogu dovesti do curenja memorije i problema sa stanjem.
- Baza podataka/SharedPreferences: Za trajno skladištenje ili prenos podataka koji zahtevaju čuvanje.
- Event Bus (npr. EventBus, RxJava): Za prenos događaja ili podataka između komponenti asinhrono.
- File I/O: Čuvanje u fajl i čitanje iz njega.