Sobes.tech
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 Bundle met behulp van de methode setArguments().
  • Parameters te extraheren in de methode onCreate() of onCreateView() uit getArguments().

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
    }
}