LAB4_dev_android.mp4
L'activité principale (MainActivity) affiche :
- Un conteneur (
FrameLayout) qui accueille les fragments dynamiquement - Deux boutons en bas de l'écran pour switcher entre les fragments
Au démarrage, Fragment 1 est affiché par défaut.
Fichiers : MessageFragment.java + fragment_message.xml
Affiche un texte "Fragment One" et un bouton "Dire bonjour".
Après un clic sur le bouton, le texte devient :
Bonjour depuis Fragment 1 !
Fichiers : SliderFragment.java + fragment_slider.xml
Affiche une SeekBar (curseur de 0 à 100) et un texte mis à jour en temps réel :
Valeur : 42
La valeur est sauvegardée lors d'une rotation d'écran grâce à onSaveInstanceState.
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.conteneur, new MessageFragment())
.addToBackStack(null)
.commit();| Méthode | Rôle |
|---|---|
beginTransaction() |
Démarre une transaction de fragment |
replace() |
Remplace le fragment affiché dans le conteneur |
addToBackStack(null) |
Permet de revenir en arrière avec le bouton Retour |
commit() |
Exécute la transaction |
onAttach()
↓
onCreate()
↓
onCreateView()
↓
onViewCreated() ← initialisation des vues ici
↓
onStart()
↓
onResume() ← fragment visible et interactif
↓
onPause() ← fragment perd le focus
↓
onStop()
↓
onDestroyView()
↓
onDestroy()
↓
onDetach()
La manipulation des vues (findViewById, setOnClickListener...) se fait dans
onViewCreated(), jamais dansonCreate().
Dans SliderFragment, la valeur de la SeekBar est sauvegardée et restaurée :
// Sauvegarde avant destruction
@Override
public void onSaveInstanceState(@NonNull Bundle out) {
super.onSaveInstanceState(out);
out.putInt("valeur", valeur);
}
// Restauration après recréation
if (savedInstanceState != null) {
valeur = savedInstanceState.getInt("valeur", 0);
seek.setProgress(valeur);
}