Junior
Kā pārsūtīt datus no vienas aktivitātes uz citu Android?
sobes.tech AI
Atbilde no AI
Datus var pārsūtīt, izmantojot Intent:
-
Sākotnējā Activity: Ielieciet datus Extras
Intentar metodēm, piemēram,putExtra(String key, value):// Intent sagatavošana val intent = Intent(this, TargetActivity::class.java) // Datu pievienošana intent.putExtra("myString", "Sveiki no pirmā Activity") intent.putExtra("myInt", 123) intent.putExtra("myBool", true) // Var pārsūtīt objektus, kas realizē Parcelable vai Serializable // intent.putExtra("myObject", myParcelableObject) // Jauna Activity uzsākšana startActivity(intent) -
Mērķa Activity: Izvelciet datus no Extras
Intent, kas saņemtsonCreatevaionNewIntentmetodēs:// `onCreate()` mērķa Activity override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_target) // Saņemto Intent, kas uzsāka šo Activity val intent = intent // Datu izvilkšana pēc atslēgas val myString = intent.getStringExtra("myString") val myInt = intent.getIntExtra("myInt", 0) // Otrs arguments - noklusējuma vērtība val myBool = intent.getBooleanExtra("myBool", false) // Apstrādājiet saņemto datus println("Saņemtais teksts: $myString") println("Saņemtais skaitlis: $myInt") println("Saņemtais boolean: $myBool") // Par Parcelable vai Serializable objektiem // val myObject = intent.getParcelableExtra<MyParcelableClass>("myObject") }
Citas datu pārsūtīšanas metodes, piemērotas sarežģītākiem scenārijiem vai lielam datu apjomam:
ViewModelkoplietošana starp Fragmentiem/Activities (caur SharedViewModel): Piemērots kopīgiem datiem starp saistītām komponentēm.Bundle(ExtrasIntentiekšpusē):putExtrapatiesībā izmantoBundleiekšpusē.- Statiskās mainīgās/singleton objekti: Jālieto uzmanīgi, var novest pie atmiņas noplūdes un stāvokļa problēmām.
- Datu bāze/SharedPreferences: Pastāvīga glabāšana vai datu pārsūtīšana, kas prasa saglabāšanu.
- Event Bus (piem., EventBus, RxJava): Notikumu vai datu pārsūtīšana asinhroni.
- Failu I/O: Saglabāšana failā un lasīšana no tā.