Junior — Middle
Μπορεί να υλοποιηθεί η χρήση επιχειρημάτων στον κατασκευαστή για το Fragment στο Android;
sobes.tech AI
Απάντηση από AI
Στο Android, δεν συνιστάται η χρήση κατασκευαστών με ορίσματα για τα Fragment, καθώς το σύστημα μπορεί να ξαναδημιουργήσει το fragment οποιαδήποτε στιγμή καλώντας τον κατασκευαστή χωρίς παραμέτρους.
Ο σωστός τρόπος να περάσετε δεδομένα σε ένα Fragment είναι να χρησιμοποιήσετε τη μέθοδο setArguments(Bundle) και να λαμβάνετε τα δεδομένα μέσω του getArguments() μέσα στο fragment.
Παράδειγμα δημιουργίας ενός fragment με ορίσματα:
class MyFragment : Fragment() {
companion object {
private const val ARG_PARAM = "param"
fun newInstance(param: String): MyFragment {
val fragment = MyFragment()
val args = Bundle()
args.putString(ARG_PARAM, param)
fragment.arguments = args
return fragment
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val param = arguments?.getString(ARG_PARAM)
// Χρησιμοποιήστε το param
}
}
Έτσι, τα δεδομένα αποθηκεύονται σε ένα Bundle και επαναφέρονται σωστά από το σύστημα κατά την αναδημιουργία του fragment.