Junior — Middle
Kann man sicher sein, dass beim Ändern der Einstellungen genau der Benutzer-Fragment-Konstruktor aufgerufen wird?
sobes.tech KI
Antwort von AI
Nein, man kann sich nicht sicher sein, dass beim Ändern der Einstellungen genau der benutzerdefinierte Konstruktor des Fragments aufgerufen wird.
In Android kann das System Fragmente neu erstellen, indem es den parameterlosen (Standard-)Konstruktor verwendet, insbesondere beim Wiederherstellen des Zustands nach einer Konfigurationsänderung (z.B. Bildschirmrotation).
Daher wird empfohlen:
- Den Standardkonstruktor ohne Parameter zu verwenden.
- Parameter über ein
Bundlemit der MethodesetArguments()zu übergeben. - Die Parameter in
onCreate()oderonCreateView()ausgetArguments()zu extrahieren.
Dies gewährleistet eine korrekte Wiederherstellung des Fragment-Zustands durch das System.
Beispiel:
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")
// Verwendung von param
}
}