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.