Sobes.tech
Junior — Middle

Μπορεί κανείς να είναι σίγουρος ότι κατά την αλλαγή των ρυθμίσεων θα κληθεί ακριβώς ο κατασκευαστής του τμήματος χρήστη;

sobes.tech AI

Απάντηση από AI

Όχι, δεν μπορεί να είναι βέβαιο ότι κατά την αλλαγή των ρυθμίσεων θα κληθεί ακριβώς ο κατασκευαστής του τμήματος χρήστη.

Στο Android, το σύστημα μπορεί να δημιουργήσει ξανά τμήματα χρησιμοποιώντας τον κατασκευαστή χωρίς παραμέτρους (προεπιλεγμένο), ειδικά κατά την αποκατάσταση της κατάστασης μετά από αλλαγή διαμόρφωσης (π.χ. περιστροφή οθόνης).

Επομένως, συνιστάται:

  • Να χρησιμοποιείτε τον προεπιλεγμένο κατασκευαστή χωρίς παραμέτρους.
  • Να περνάτε παραμέτρους μέσω Bundle χρησιμοποιώντας τη μέθοδο setArguments().
  • Να εξάγετε τις παραμέτρους στη μέθοδο onCreate() ή onCreateView() από το getArguments().

Αυτό διασφαλίζει την ορθή αποκατάσταση της κατάστασης του τμήματος από το σύστημα.

Παράδειγμα:

class MyFragment : Fragment() {
    companion object {
        fun newInstance(param: String): MyFragment {
            val fragment = MyFragment()
            val args = Bundle()
            args.putString("param_key", param)
            fragment.arguments = args
            return fragment
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val param = arguments?.getString("param_key")
        // Χρησιμοποιήστε το param
    }
}