Quelles méthodes sécurisées peuvent être utilisées pour transmettre des données entre Fragment via le constructeur?
sobes.tech IA
Réponse de l'IA
Il n’est pas recommandé de transmettre des données entre Fragments en Android directement via le constructeur, car le système peut recréer le fragment à tout moment en appelant un constructeur sans paramètres. À la place, une méthode sûre et standard consiste à utiliser des arguments via Bundle et les méthodes setArguments()/getArguments().
Exemple de transmission sécurisée de données :
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)
// Utiliser param
}
}
Ainsi, les données sont stockées dans un Bundle, que le système sauvegarde et restaure automatiquement lors de la recréation du fragment. L’utilisation d’un constructeur avec paramètres n’est pas sûre et peut entraîner des erreurs.
Si vous souhaitez absolument utiliser un constructeur, vous pouvez le laisser vide et transmettre les données via un Bundle, ou utiliser ViewModel pour échanger des données entre fragments.