Junior
Wie überträgt man Daten von einer Aktivität zur anderen in Android?
sobes.tech KI
Antwort von AI
Daten können mit Intent übertragen werden:
-
In der Quell-Activity: Platzieren Sie die Daten in den Extras des
Intentmit Methoden wieputExtra(String key, value).// Intent vorbereiten val intent = Intent(this, TargetActivity::class.java) // Daten hinzufügen intent.putExtra("myString", "Hallo aus der ersten Activity") intent.putExtra("myInt", 123) intent.putExtra("myBool", true) // Objekte, die Parcelable oder Serializable implementieren, können ebenfalls übertragen werden // intent.putExtra("myObject", myParcelableObject) // Neue Activity starten startActivity(intent) -
In der Ziel-Activity: Extrahieren Sie die Daten aus den Extras des
Intent, der inonCreateoderonNewIntentempfangen wurde.// In onCreate() der Ziel-Activity override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_target) // Erhalten des Intents, der diese Activity gestartet hat val intent = intent // Daten anhand des Schlüssels extrahieren val myString = intent.getStringExtra("myString") val myInt = intent.getIntExtra("myInt", 0) // Zweites Argument: Standardwert val myBool = intent.getBooleanExtra("myBool", false) // Verarbeiten der extrahierten Daten println("Empfangene Zeichenkette: $myString") println("Empfangene Zahl: $myInt") println("Empfangenes Boolean: $myBool") // Für Parcelable- oder Serializable-Objekte // val myObject = intent.getParcelableExtra<MyParcelableClass>("myObject") }
Weitere Methoden zum Übertragen von Daten, geeignet für komplexere Szenarien oder große Datenmengen:
ViewModelgemeinsam genutzt zwischen Fragmenten/Activities (über SharedViewModel): Praktisch für gemeinsame Daten zwischen verbundenen Komponenten.Bundle(innerhalb der Extras des Intents):putExtraverwendet intern einBundle.- Statische Variablen/Singletons: Sollten vorsichtig verwendet werden, da sie zu Speicherlecks und Zustandsproblemen führen können.
- Datenbank/SharedPreferences: Für dauerhafte Speicherung oder Übertragung von Daten, die gespeichert werden müssen.
- Event Bus (z.B. EventBus, RxJava): Für die asynchrone Übertragung von Ereignissen oder Daten zwischen Komponenten.
- File I/O: Speichern in eine Datei und Lesen daraus.