Sobes.tech
Junior — Middle

Peut-on être sûr que lors de la modification des paramètres, le constructeur de fragment utilisateur sera appelé ?

sobes.tech IA

Réponse de l'IA

Non, il n'est pas possible d'être sûr qu'en modifiant les paramètres, c'est précisément le constructeur du fragment utilisateur qui sera appelé.

Dans Android, le système peut recréer des fragments en utilisant le constructeur sans paramètres (par défaut), notamment lors de la restauration de l'état après un changement de configuration (par exemple, la rotation de l'écran).

Il est donc recommandé de :

  • Utiliser le constructeur par défaut sans paramètres.
  • Passer des paramètres via un Bundle en utilisant la méthode setArguments().
  • Récupérer les paramètres dans la méthode onCreate() ou onCreateView() à partir de getArguments().

Cela garantit une restauration correcte de l'état du fragment par le système.

Exemple :

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")
        // Utiliser param
    }
}