Junior
Για ποιο λόγο χρησιμοποιείται η κλάση Bundle στο Android;
sobes.tech AI
Απάντηση από AI
Το Bundle χρησιμοποιείται για τη μεταφορά δεδομένων μεταξύ των συστατικών της εφαρμογής, όπως Activity, Fragment ή Service.
Βασικές λειτουργίες:
- Αποθήκευση δεδομένων: Μπορεί να περιέχει διάφορους πρωταρχικούς τύπους δεδομένων (int, boolean, String κ.ά.), πίνακες πρωταρχικών τύπων, καθώς και αντικείμενα Parcelable ή Serializable.
- Κλειδί-τιμή: Τα δεδομένα αποθηκεύονται ως ζεύγη κλειδιού-τιμής, όπου το κλειδί είναι μια συμβολοσειρά.
- Αποθήκευση κατάστασης: Χρησιμοποιείται για την αποθήκευση και επαναφορά της κατάστασης του Activity (π.χ., στις μεθόδους
onSaveInstanceState()καιonRestoreInstanceState()). - Αιτήματα Fragment: Χρησιμοποιείται για την μεταβίβαση επιχειρημάτων σε ένα Fragment μέσω της μεθόδου
setArguments(). - Επιπλέον δεδομένα σε Intent: Επιτρέπει τη μεταφορά επιπλέον δεδομένων σε ένα Intent μέσω των μεθόδων
putExtra()καιgetExtras().
Παράδειγμα χρήσης για τη μεταφορά δεδομένων μεταξύ Activities:
// Αποστολή δεδομένων από Activity A σε Activity B
val intent = Intent(this, ActivityB::class.java)
val bundle = Bundle()
bundle.putString("username", "john.doe")
bundle.putInt("age", 30)
intent.putExtras(bundle)
startActivity(intent)
// Λήψη δεδομένων στο Activity B
val extras = intent.extras
if (extras != null) {
val username = extras.getString("username")
val age = extras.getInt("age", -1) // Προεπιλεγμένη τιμή
}