Sobes.tech
Junior — Middle

È possibile essere sicuri che modificando le impostazioni venga chiamato esattamente il costruttore del frammento utente?

sobes.tech AI

Risposta dell'AI

No, non si può essere sicuri che modificando le impostazioni venga chiamato esattamente il costruttore del frammento utente.

In Android, il sistema può ricreare i frammenti usando il costruttore senza parametri (di default), specialmente durante il ripristino dello stato dopo una modifica di configurazione (ad esempio, rotazione dello schermo).

Pertanto, si consiglia di:

  • Usare il costruttore di default senza parametri.
  • Passare i parametri tramite Bundle usando il metodo setArguments().
  • Estrarre i parametri nel metodo onCreate() o onCreateView() da getArguments().

Questo garantisce un ripristino corretto dello stato del frammento da parte del sistema.

Esempio:

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")
        // Usare param
    }
}