Junior — Middle
Kun je er zeker van zijn dat bij het wijzigen van de instellingen precies de gebruikersconstructor van het fragment wordt aangeroepen?
sobes.tech AI
Antwoord van AI
Nee, je kunt er niet zeker van zijn dat bij het wijzigen van de instellingen precies de constructor van het fragment door de gebruiker wordt aangeroepen.
In Android kan het systeem fragmenten opnieuw maken met behulp van de parameterloze (standaard) constructor, vooral bij het herstellen van de staat na een configuratiewijziging (bijvoorbeeld schermrotatie).
Daarom wordt aanbevolen:
- De standaard constructor zonder parameters te gebruiken.
- Parameters door te geven via een
Bundlemet behulp van de methodesetArguments(). - Parameters te extraheren in de methode
onCreate()ofonCreateView()uitgetArguments().
Dit garandeert een correcte herstel van de toestand van het fragment door het systeem.
Voorbeeld:
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")
// Gebruik param
}
}