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
Bundleen utilisant la méthodesetArguments(). - Récupérer les paramètres dans la méthode
onCreate()ouonCreateView()à partir degetArguments().
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
}
}