Junior — Middle
Biztos lehet-e benne, hogy a beállítások módosításakor pontosan a felhasználói konstruktor hívódik meg?
sobes.tech MI
Válasz az MI-től
Nem, nem lehet biztos benne, hogy a beállítások módosításakor pontosan a felhasználói fragment konstruktorát hívják meg.
Android rendszerben a rendszer újra létrehozhatja a fragmenteket a paraméter nélküli (alapértelmezett) konstruktor használatával, különösen a konfigurációs változás utáni állapot helyreállításakor (például képernyőforgatáskor).
Ezért javasolt:
- Az alapértelmezett paraméter nélküli konstruktor használata.
- Paraméterek átadása
Bundle-en keresztül asetArguments()módszerrel. - A paraméterek kinyerése az
onCreate()vagy azonCreateView()metódusban agetArguments()-ből.
Ez biztosítja a rendszer által a fragment állapotának helyes helyreállítását.
Példa:
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")
// Paraméter használata
}
}