Sobes.tech
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.