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
Bundleusando il metodosetArguments(). - Estrarre i parametri nel metodo
onCreate()oonCreateView()dagetArguments().
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
}
}