Sobes.tech
Junior — Middle

Pourquoi passe-t-on des arguments dans la méthode de création de Fragment et comment cela influence-t-il son fonctionnement?

sobes.tech IA

Réponse de l'IA

En Android, pour transmettre des données à un Fragment lors de sa création, on utilise généralement la méthode setArguments(Bundle). Cela permet de définir des arguments que le fragment pourra récupérer à tout moment de son cycle de vie via getArguments().

Transmettre des arguments via un Bundle est important parce que :

  • Les arguments sont sauvegardés et restaurés par le système lors de la recréation du fragment (par exemple, lors de la rotation de l'écran).
  • Cela garantit la restauration correcte de l'état du fragment sans avoir besoin de stocker des données dans des champs non stables.
  • Permet de créer des fragments avec différents paramètres, les rendant plus universels.

Exemple de création d'un fragment avec arguments :

class MyFragment : Fragment() {
    companion object {
        private const val ARG_USER_ID = "user_id"

        fun newInstance(userId: Int): MyFragment {
            val fragment = MyFragment()
            val args = Bundle()
            args.putInt(ARG_USER_ID, userId)
            fragment.arguments = args
            return fragment
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val userId = arguments?.getInt(ARG_USER_ID) ?: 0
        // Utiliser userId
    }
}

Ainsi, les arguments assurent un transfert sécurisé et pratique des données dans le fragment et leur conservation lors de sa recréation.